我创建了以下函数来检查连接状态:
private void checkConnectionStatus() {
HttpClient httpClient = new DefaultHttpClient();
try {
String url = "http://xxx.xxx.xxx.xxx:8000/GaitLink/"
+ strSessionString + "/ConnectionStatus";
Log.d("phobos", "performing get " + url);
HttpGet method = new HttpGet(new URI(url));
HttpResponse response = httpClient.execute(method);
if (response != null) {
String result = getResponse(response.getEntity());
...
当我关闭服务器以测试执行情况时,会在网上等待很长时间
HttpResponse response = httpClient.execute(method);
有谁知道如何设置超时以避免等待太久?
在我的示例中,设置了两个超时。连接超时抛出java.net.SocketTimeoutException: Socket is not connected
,套接字超时java.net.SocketTimeoutException: The operation timed out
。
HttpGet httpGet = new HttpGet(url);
HttpParams httpParameters = new BasicHttpParams();
// Set the timeout in milliseconds until a connection is established.
// The default value is zero, that means the timeout is not used.
int timeoutConnection = 3000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
// Set the default socket timeout (SO_TIMEOUT)
// in milliseconds which is the timeout for waiting for data.
int timeoutSocket = 5000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
HttpResponse response = httpClient.execute(httpGet);
如果要设置任何现有HTTPClient的参数(例如DefaultHttpClient
或AndroidHttpClient)
,则可以使用函数setParams()
。
httpClient.setParams(httpParameters);
我有一个TcpClient,用于将数据发送到远程计算机上的侦听器。远程计算机有时打开,有时关闭。因此,TCP客户端将经常无法连接。我希望TcpClient在一秒钟后超时,这样当它无法连接到远程计算机时就不会花费太多时间。目前,我对TcpClient使用以下代码: 这对于处理任务来说已经足够好了。如果可以,它会发送它,如果无法连接到远程计算机,它会捕获异常。然而,当它无法连接时,抛出异常需要10到1
问题内容: 我在Go中制作了一个URL提取程序,并具有要提取的URL列表。我将请求发送到每个URL并获得他们的响应。 如何为每个Get请求设置自定义超时?(默认时间很长,这会使我的提取程序非常慢。)我希望提取程序的超时时间为40-45秒左右,之后它应该返回“请求超时”并移至下一个URL。 我该如何实现? 问题答案: 显然在Go 1.3中,http.Client具有“超时”字段 这为我完成了窍门。
我正在制作一个URL提取器,并有一个要提取的URL列表。我向每个URL发送请求并获取它们的响应。 如何为每个Get请求设置自定义超时?(默认时间很长,这使得我的取数器非常慢。)我希望我的提取器有一个大约40-45秒的超时,之后它应该返回“Request timed Out”并移动到下一个URL。 我怎样才能做到这一点呢?
问题内容: 我org.springframework.ws.client.core.WebServiceTemplate用于拨打Web服务。如何为通话配置超时。 问题答案: 如果你使用的是Spring Webservices 2.1.0版本,则可以使用HttpComponentsMessageSender设置超时。 Spring不推荐使用CommonsHttpMessageSender,因此不再推
我正在尝试在我的WebClient上设置超时,以下是当前代码: 我需要添加超时和池策略,我在想这样的事情: 但是我不知道如何在我的webclient中设置httpClient