/ / Unirest.delete () bloqueia qualquer método Unirest, quando response.body está vazio - java, unirest

Unirest.delete () bloqueia qualquer método Unirest, quando response.body está vazio - java, unirest

Nós usamos Unirest 1.5.4 para java. Nossas respostas do servidor em chamadas DELETE com um status 204 - NO_CONTENT e um corpo de resposta vazio. Quando faço a chamada de exclusão síncrona, as seguintes chamadas terminam em um SocketTimeoutException.

Para uma investigação mais profunda, troquei algumas linhas no servidor para responder o status 200 e um corpo "{}". Apenas com este corte do lado do servidor Unirest funciona bem.

aqui está o meu código de cliente Unirest (com falha):

public static void main(String... args) throws UnirestException {
String baseUrl = "http://localhost:9010/orga/";
String orgaJson = "{}";
HttpResponse<String> postResponse = Unirest.post(baseUrl).body(orgaJson).asString();
System.out.println("POST status = " + postResponse.getStatus());
JSONObject orga = new JSONObject(postResponse.getBody());
String orgaId = orga.getJSONObject("_id").getString("$oid");
HttpResponse<String> deleteResponse = Unirest.delete(baseUrl+"{id}").routeParam("id", orgaId).asString();
System.out.println("DELETE status = " + deleteResponse.getStatus());
System.out.println("DELETE body = " + deleteResponse.getBody());
// the next call will cause a SocketTimeoutException
Unirest.post(baseUrl).body(orgaJson).asString();
}

Respostas:

0 para resposta № 1

Eu consegui resolver um problema semelhante, definindoTempos limite ligeiramente mais altos que os padrões. Parece que se você tentar fazer várias conexões com um serviço como o MailChimp, todas as solicitações subsequentes demoram um pouco mais de tempo. Tente experimentar um pouco.

Unirest.setTimeouts(10000, 30000);