进行多个休息客户端呼叫

时间:2016-10-12 21:00:13

标签: java rest client put

我尝试使用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;
    }
}

你知道如何进行多次休息吗?

1 个答案:

答案 0 :(得分:0)

是的,你可以。我是这样做的: 服务层: ... //第一 ResponseEntity&GT; firstResponse = firstClient.createEntity(requestPayload1);

//第二个 ResponseEntity&GT; secondResponse = secondClient.createEntity(requestPayload2);

两者都可以传递相同的requestPayload对象。

因此,您需要拥有两个客户端(如果您不想每次都动态更改构建器)

我假设您已经知道如何创建客户端。在我的例子中,我使用restTemplate.getUriTemplateHandler()来创建URI,然后使用RequestEntity和ParameterizedTypeReference进行交换。

如果你没有从事任何交易工作,我会认为按顺序打电话就可以了。