在区分大小写模式下创建一个带有uri的http请求



我有一个https请求,它的uri以大写字母开头。我在《邮差》上测试过,得到了回应;但是在vertx(io.vertx.core(的代码中,我无法获得所需的响应。目标服务器似乎拒绝了我。我想要的uri似乎自动变为小写。很遗憾,服务器不接受更改后的模式。

所需uri:/Internalservice

https://example.com/Internalservice

我使用这个webClient:io.vertx.ext.web.client;

这是我的方法:

public CompletionStage<HttpResponse> post(String host, int port, String uri, MultiMap headers, JsonObject body) {
return client.post(port, host, uri)
.putHeaders(headers)
.timeout(requestTimeout.toMillis())
.sendJsonObject(body)
.toCompletionStage()
.thenApply(response -> new HttpResponse(response.statusCode(), response.body() != null ?     response.body().getBytes() : new byte[]{}));
}

我必须做些什么来处理这个区分大小写的uri?

我找到了答案!我使用了io.vertx.ext.web.clientWebClient来创建http发布请求。有一个方法:HttpRequest-postAbs(StringabsoluteURI(在它的纪录片中,我们有:

/**
* Create an HTTP POST request to send to the server using an absolute URI, specifying a response handler to receive
* the response
* @param absoluteURI  the absolute URI
* @return  an HTTP client request object
*/

所以它帮助了我!

我的方法是:

public CompletionStage<HttpResponse> post(String uri, MultiMap headers, JsonObject body) {
return client.postAbs(uri)
.putHeaders(headers)
.timeout(requestTimeout.toMillis())
.sendJsonObject(body)
.toCompletionStage()
.thenApply(response -> new HttpResponse(response.statusCode(), response.body() != null ? response.body().getBytes() : new byte[]{}));
}

正如您所看到的,这些参数与以前的版本不同。现在我可以输入https://example.com/Internalservice作为绝对uri。所需的uri不会有任何更改或转换。

相关内容

  • 没有找到相关文章

最新更新