gpt4 book ai didi

java - org.apache.commons.httpclient.HttpClient 卡在请求上

转载 作者:行者123 更新时间:2023-12-02 08:32:14 26 4
gpt4 key购买 nike

我有该代码:

 while(!lastPage && currentPage < maxPageSize){


StringBuilder request = new StringBuilder("http://catalog.bizrate.com/services/catalog/v1/us/" + " some more ...");

currentPage++;
HttpClient client = new HttpClient(new MultiThreadedHttpConnectionManager());
client.getHttpConnectionManager().getParams().setConnectionTimeout(15000);



GetMethod get = new GetMethod(request.toString());

HostConfiguration configuration = new HostConfiguration();

int iGetResultCode = client.executeMethod(configuration, get);
if (iGetResultCode != HttpStatus.SC_OK) {
System.err.println("Method failed: " + get.getStatusLine());
return;
}
XMLStreamReader reader
= XMLInputFactory.newInstance().createXMLStreamReader(get.getResponseBodyAsStream());
while (reader.hasNext()) {
int type = reader.next();
// some more xml parsing ...
}
reader.close();
get.releaseConnection();
}

不知何故,代码有时会变得很糟糕:执行请求。

我找不到请求超时(不是连接超时)的配置,有人可以帮助我吗?或者我做错了什么?

client我正在使用。

最佳答案

您还可以使用 setSoTimeout() 设置套接字读取超时,但这也不能保证。

唯一的解决方案是在不同的线程中运行请求并在超时后中断线程。您可以使用 FutureTask 来执行此操作。例如,请参阅我对此问题的回答,

java native Process timeout

关于java - org.apache.commons.httpclient.HttpClient 卡在请求上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3032082/

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