首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vertx路由器没有响应

问vertx路由器没有响应
EN

Stack Overflow用户
提问于 2022-03-09 08:24:38
回答 1查看 66关注 0票数 0

我编写了一个调度程序,它将请求路由到后端服务器,来自后端的响应是加密的。当我解密响应体并写入RoutingContext响应时。客户端无法收到响应。

代码如下

代码语言:javascript
复制
Router router;
router.routeWithRegex(patter).failureHandler(this::onFailure).handler(this::onRequest);

private void onRequest(Routing context){
  ...
  HttpClient client = vertx.createHttpClient(new HttpClientOptions());
  HttpClientRequest requestToBackend =
            client.request(method, port, backendHost, uri, backendRsp -> onBackendResponse(context, backendRsp));
  context.request().handler(body -> handleReq(requestToBackend));
  context.request().endHandler((v) -> requestToBackend.end());
}

private void onBackendResponse(RoutingContext context, io.vertx.core.http.HttpClientResponse backendRsp) {
    ....
    backendRsp.handler(data -> {
        byte[] decrypt = decrypt(data);
        context.request().response().write(data);     // this works fine
        // context.request().response().write(Buffer.buffer(decrypt)); // change to this, client can't receive response then
    });
    backendRsp.endHandler((v) -> context.request().response().end());
}
EN

回答 1

Stack Overflow用户

发布于 2022-03-10 10:31:26

最后,我更改了响应体(比原版更短),但没有修改标题“内容长度”。所以客户继续等..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71406313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档