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