gpt4 book ai didi

java - 当 response.body 为空时,Unirest.delete() 会阻止任何进一步的 Unirest 方法

转载 作者:太空宇宙 更新时间:2023-11-04 14:00:20 27 4
gpt4 key购买 nike

我们使用 Unirest 1.5.4 for java。我们的服务器以 204 - NO_CONTENT 状态和空响应正文响应 DELETE 调用。当我执行同步删除调用时,以下调用将以 SocketTimeoutException 结束。

为了进行更深入的调查,我交换了服务器中的一些行以响应状态 200 和“{}”正文。只有通过这个服务器端黑客,Unirest 才能正常工作。

这是我的(失败的)Unirest 客户端代码:

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();
}

最佳答案

我通过将超时设置为略高于默认值来解决类似的问题。看起来,如果您尝试与 MailChimp 等服务建立多个连接,则每个后续请求都会花费更多时间。尝试一下。

Unirest.setTimeouts(10000, 30000);

关于java - 当 response.body 为空时,Unirest.delete() 会阻止任何进一步的 Unirest 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29353661/

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