gpt4 book ai didi

rest - 使用 JAX-RS 转发来自另一台服务器的响应

转载 作者:可可西里 更新时间:2023-11-01 16:40:29 25 4
gpt4 key购买 nike

我有一个角度客户端正在对我的服务器进行 POST 调用。该服务器需要通过使用 POST 调用调用另一个服务器(server2)来获得响应,并将来自 server2 的响应传递给客户端。我尝试了以下方法。

public Response call(){
String server2Url = "http://server2/path"
RestClient restClient = new RestClient();
return Response.fromResponse(restClient.post(server2Url)).build();
}

但在上述情况下,传输的是 HTTP 状态代码,而不是响应主体。响应体为空

然后我尝试了:

public Response call() throws URISyntaxException{
String server2Url = "http://server2/path"
RestClient restClient = new RestClient();
return Response.temporaryRedirect(new URI(server2Url)).build();
}

但是浏览器客户端最终对 server2Url 进行了 OPTIONS 调用而不是 POST

我试过了。

public Response call() throws URISyntaxException{
String server2Url = "http://server2/path"
RestClient restClient = new RestClient();
return Response.seeOther(new URI(server2Url)).build();
}

但这最终会进行 GET 调用而不是 POST。

我如何让浏览器客户端对 server2 进行 POST 调用

最佳答案

您可以使用 Html Client从 JAX-RS 发出您自己的请求(从服务器 1 到服务器 2),然后将响应从服务器 2 返回到角度客户端。

public Response call() {
String url = "server2 url";
Response response;
try {
response = ClientBuilder
.newClient()
.target(url)
.request()
.post(Entity.json(null), Response.class);

}
catch (Exception e) {
// Whatever you want
return null; // or error
}

// Return the status returned by server 2
return Response.status(response.getStatus()).build();
}

关于rest - 使用 JAX-RS 转发来自另一台服务器的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45890635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com