重複の可能性:
接続タイムアウトと読み取りタイムアウトがデフォルト (無限) に設定されているにもかかわらず、要求タイムアウトを受信していますか?
Web サービスに接続しようとすると、SocketTimeoutException
約 20 秒後に を受け取りました。Web サービスをホストしている Tomcat サーバーがダウンしているため、これException
が予期されます。ただし、ConnectTimeout と ReadTimeout の値を設定していません。ドキュメントによると、これら 2 つのデフォルト値は無限です。
これの 1 つの可能性は、接続しようとしたサーバーに独自のタイムアウトがあることです。しかし、友人が 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)
{
}