我尝试连接到 Web 服务并SocketTimeoutException
在大约 20 秒后收到。托管 Web 服务的 Tomcat 服务器已关闭,因此这Exception
是意料之中的。但是,我没有设置 ConnectTimeout 和 ReadTimeout 的值。根据文档,这两个的默认值是无限的。
一种可能性是我尝试连接的服务器有自己的超时。但是当我的朋友尝试使用 iOS 连接到它时,他的连接在大约 1 分 15 秒后超时。如果服务器是发出超时的服务器,那么我们的连接应该几乎同时超时。请注意,他也在使用 iOS 的默认超时时间。
- 当我的连接和读取超时设置为无限时,为什么我的套接字这么早就超时了?
- 套接字超时与连接和读取超时是否不同?如果是这样,它有什么不同?
- 如何知道我的套接字超时值?我正在使用 HttpURLConnection。
- 有没有办法设置套接字超时?如何?
下面是我的代码片段:
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)
{
}