2

以下は、Java ネットワークで 503 応答コードを処理する適切な方法でしょうか? このコード、特に切断と null の呼び出しは何をしますか?

URL url = new URL(some url);
HttpURLConnection h =(HttpURLConnection)url.openConnection();
int x = h.getResponseCode();
while(x==503)
{
    h.disconnect();
    h = null;
    h =(HttpURLConnection)url.openConnection();
    x = h.getResponseCode();
}
4

2 に答える 2

4

disconnect() は、基礎となる TCP ソケットを閉じます。

再割り当ての直前にローカル変数を null に設定しても、何も達成されません。

そのループにはスリープがあり、失敗するたびに間隔が長くなり、再試行回数が制限されます。

于 2012-04-19T06:04:32.543 に答える
1

やりたいことは何でも適切な方法です。何かをフェイルセーフにするためには、503 シナリオだけを処理するよりも、成功するまで繰り返すほうがよいでしょう。

最も単純な例: 200 (成功) コードが返されるまでループします。

(それをメソッドとクラスに抽象化し、可能な場合は OOP と単体テストを使用することをお勧めします。)

于 2012-04-19T06:04:51.673 に答える