2016-04-04 40 views
5

私は接続するには、次のコードを使用している -java.net.SocketTimeoutException(アンドロイド)

URL url = new URL("https://results.bput.ac.in/"); 

HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); 
urlc.setConnectTimeout(1000 * 20); 

urlc.connect(); 

それは、てSocketTimeoutExceptionを返しました。

例外

私は取得しています正確な例外は

java.net.SocketTimeoutException: failed to connect to results.bput.ac.in/14.139.212.166 (port 443) after 90000ms 

、時にはこれです -で試してみました

java.net.SocketTimeoutException: failed to connect to results.bput.ac.in/14.139.212.166 (port 80) after 90000ms 
  • urlc.setConnectTimeout(1000 * 20);を削除しても例外はあります。
  • httpsURL url = new URL("http://results.bput.ac.in/");の代わりにhttpでチェックしましたが、結果はありませんでした。
  • URL url = new URL("https://www.facebook.com/");でおしゃべりして成功しました。
  • タイムアウト期間を変更してチェックされますが、同じ例外があります。

この特定のURLに問題があります。http://results.bput.ac.in/です。

私はhttp://results.bput.ac.in/を与えている。このリンクは完全に任意の遅れなしに任意のWebブラウザで動作された情報

私はいくつかの人がこのサイトを開くことができない、遅れているという情報を得ましたが、私はそれを遅滞なく開くことができます。

私の研究

私はすでにthis SO questionthis SO questionthis github solutionjava code geeks solutionを試みたが、何の結果を得ていません。

更新

私は私のルータがポートに問題があるかもしれないことを考えて、私の無線LANとモバイルデータでこれをテストしています。私はモバイルデータでも同じ例外があります。

誰にもこれに対する解決策はありますか?

+0

そのリンクは機能していますか? –

+0

私は自分の質問を編集しました。 @PankajNimgadeリンクが動作します。 –

+1

ブラウザでそのリンクを試しましたが、タイムアウトしてしまいました。 –

答えて

2

hostnameが複数のIPアドレスに解決された場合、このクライアントはそれぞれRFC 3484の順序で試行します。これらの各アドレスへの接続に失敗すると、接続試行が例外をスローする前に複数のタイムアウトが経過します。 IPv6IPv4の両方をサポートするホスト名は、常に少なくとも2つのIPアドレスを持ちます。 - Doc

すでにsetConnectTimeout()を使用し、最大時間にもなるように疑いを追加しました。 の主な理由SocketTimeoutExceptionは、接続が確立される前にタイムアウトが経過した場合です。

次に主な原因はです。サーバーとの接続を確立できませんでした。

+0

どうしたらいいですか?任意のソリューションですか? –

+0

「URL」を開いて適切な接続を確立できることを確認してください。あなたのサーバは応答していませんが、 'https:// www.facebook.com'はこれを行いますので、正常に動作しています。これは、接続タイムアウトの問題を解決するまでクライアント側でこのエラーと何も関係がないことを意味します。 –

+0

私はまた、タイムアウト期間を与えずにエラーを出すことも試みました。 –

0

https://results.bput.ac.in/http://results.bput.ac.in/の両方を試してみましたが、どちらもタイムアウトしました。サーバーのファイアウォールにポート80および/または443を開いていない可能性があります。

+0

どうすればいいですか? –