我尝试使用org.apache.wink.client.RestClient向具有Basic Auth的服务进行多个客户端调用。
第一个PUT我获得200的状态代码,但随后我的连接超时。
我每次尝试重新创建客户端时都尝试重新创建客户端。
这是我的代码:
for (int pos = 0; pos < jsonsToSend.size(); pos++) {
BasicAuthSecurityHandler secHandler = new BasicAuthSecurityHandler();
ClientConfig config = new ClientConfig();
secHandler.setUserName(username);
secHandler.setPassword(password);
config.handlers(secHandler);
RestClient client = new RestClient(config);
Resource resource = client.resource(url);
actualJson = JSONObject.parse(jsonsToSend.get(pos).toString());
response = putJson(actualJson, resource);
}
这是putJson方法:
private ClientResponse putJson(JSONObject jsonSend, Resource resource) throws Exception {
try {
ClientResponse response = resource.contentType("text/plain; charset=utf-8").accept("*/*").put(jsonSend.toString());
return response;
} catch (Exception e) {
throw e;
}
}
你知道如何进行多次休息吗?
答案 0 :(得分:0)
是的,你可以。我是这样做的: 服务层: ... //第一 ResponseEntity&GT; firstResponse = firstClient.createEntity(requestPayload1);
//第二个 ResponseEntity&GT; secondResponse = secondClient.createEntity(requestPayload2);
两者都可以传递相同的requestPayload对象。
因此,您需要拥有两个客户端(如果您不想每次都动态更改构建器)
我假设您已经知道如何创建客户端。在我的例子中,我使用restTemplate.getUriTemplateHandler()来创建URI,然后使用RequestEntity和ParameterizedTypeReference进行交换。
如果你没有从事任何交易工作,我会认为按顺序打电话就可以了。