Https Vertx客户端获取ClientBort异常

Https Vertx客户端获取ClientBort异常,https,vert.x,Https,Vert.x,我在服务器端获取clientabort sockettimeout读取异常,同时通过vertx应用程序内的https客户端调用rest服务。如果我调用一个http设置,它可以正常工作 我在vertx中得到了200 ok,没有得到任何数据。我还得到了vertx中的连接关闭错误 你知道为什么会这样吗。谢谢你的帮助 代码: 这不是发送请求的方式。 希望工作示例可以帮助您 服务器: final Vertx vertx = Vertx.vertx(); vertx.createHttpS

我在服务器端获取clientabort sockettimeout读取异常,同时通过vertx应用程序内的https客户端调用rest服务。如果我调用一个http设置,它可以正常工作

我在vertx中得到了200 ok,没有得到任何数据。我还得到了vertx中的连接关闭错误

你知道为什么会这样吗。谢谢你的帮助

代码:


这不是发送请求的方式。
希望工作示例可以帮助您

服务器:

    final Vertx vertx = Vertx.vertx();

    vertx.createHttpServer().requestHandler((c) -> {

        c.bodyHandler(b -> {
            System.out.println(b.toString());
        });
        c.response().end("ok");
    }).listen(8443);
客户:

    final HttpClient client = vertx.createHttpClient(
            new HttpClientOptions()
                    .setDefaultHost("localhost")
                    .setDefaultPort(8443));


    client.request(HttpMethod.POST, "/", (r) -> {
        System.out.println("Got response");
    }).putHeader("Content-Length", Integer.toString("Hello".length()))
             .write("Hello").end();

两个重要注意事项:必须使用
.end()
结束
.request()
,并且必须正确设置
内容长度。

请共享您的代码。final HttpClient httpClient1=vertx.createHttpClient(新HttpClientOptions().setDefaultHost(“localhost”).setDefaultPort(8443).SetSL(true).setKeepAlive(true).setMaxPoolSize(100).setTrustAll(true));HttpClientRequest req=httpClient1.request(HttpMethod.POST,“/api/test/”;req.headers().set(“内容长度”,“10000000”).set(“内容类型”,“应用程序/json”).set(“缓存控制”,“无转换,最大年龄=0”);bufferbody=Buffer.Buffer(“Hello World”);请求写入(正文);为什么将
内容长度设置为
10000000
?它必须和身体的大小相等。您是否对
请求调用
end
方法?
    final HttpClient client = vertx.createHttpClient(
            new HttpClientOptions()
                    .setDefaultHost("localhost")
                    .setDefaultPort(8443));


    client.request(HttpMethod.POST, "/", (r) -> {
        System.out.println("Got response");
    }).putHeader("Content-Length", Integer.toString("Hello".length()))
             .write("Hello").end();