【发布时间】:2012-05-08 04:06:47
【问题描述】:
可能重复:
Receiving request timeout even though connect timeout and read timeout is set to default (infinite)?
我尝试连接到网络服务并在大约 20 秒后收到SocketTimeoutException。托管 Web 服务的 Tomcat 服务器已关闭,因此预计会出现 Exception。但是,我没有设置 ConnectTimeout 和 ReadTimeout 的值。根据文档,这两个的默认值是无限的。
这种情况的一种可能性是我尝试连接的服务器有自己的超时。但是当我的朋友尝试使用 iOS 连接到它时,他的连接在大约 1 分 15 秒后超时。如果服务器是发出超时的服务器,那么我们的连接应该几乎同时超时。请注意,他也在使用 iOS 的默认超时时间。
- 当我的连接和读取超时设置为无限时,为什么我的套接字这么早就超时了?
- 套接字超时与连接和读取超时是否不同?如果有,有什么不同?
- 如何知道我的套接字超时值?我正在使用 HttpURLConnection。
- 有没有办法设置套接字超时?怎么样?
下面是我的代码的 sn-p:
httpURLConnection = (HttpURLConnection) ((new URL("http://www.website.com/webservice")).openConnection());
httpURLConnection.setDoInput(isDoInput);
httpURLConnection.setDoOutput(isDoOutput);
httpURLConnection.setRequestMethod(method);
try
{
OutputStreamWriter writer = new OutputStreamWriter(httpURLConnection.getOutputStream());
writer.write("param1=value1");
writer.flush;
}catch(Exception e)
{
}
【问题讨论】:
-
你为什么要重新问一个你已经回答过的问题?
-
@Krroae27:感谢您提及。我很抱歉。我暂时停止处理这个问题来做不同的任务。我忘了我之前已经发布过类似的问题了。
-
@EJP:我忘记了我之前的帖子。另外,我对上一篇文章的答案不满意。我正在尝试删除这篇文章,但我不能删除,因为已经有答案了。
-
@Arci 您上一篇文章中的答案与这篇文章中的答案相同。
标签: java android httpurlconnection socket-timeout-exception