-2

IF ステートメントの本体は実行されません。どうしてこれなの?

推定

String urlRequest = "http://stackoverflow.com/";

これが私のコードです:

try {
        URL url= new URL(urlRequest);
        HttpURLConnection foo = (HttpURLConnection) url.openConnection();

        if(foo.getResponseCode() == HttpURLConnection.HTTP_OK) {
            // SOME CODE HERE
        }

} catch(Exception e) {
        e.printStackTrace();
}

HttpURLConnection==と同等のものに置き換える必要がありますか? .equals()または、応答コードの代わりに HttpURLConnection のステータス コードを使用する必要がありますか?

4

2 に答える 2

1

HTTP 呼び出しでコードがクラッシュする可能性があるため、本文が実行されることはありません。この呼び出しが別のスレッドにあることを確認してください。詳しくはこちらをご覧ください。

実際のif文に関しては問題ないようですので、おそらく例外の問題です。

Tbh、将来的には、ログなどのより多くの情報を提供し、@paxdiablo で述べられているように、コードを断片に抽象化して十分なテストを行ったことを確認してください。

幸運を!

于 2013-03-15T20:09:54.130 に答える
1

変更する場合:

if(foo.getResponseCode() == HttpURLConnection.HTTP_OK) {

次のようなものに:

int xyzzy = foo.getResponseCode();
System.out.println ("xyzzy = " + xyzzy);
System.out.println ("   OK = " + HttpURLConnection.HTTP_OK);
if(xyzzy == HttpURLConnection.HTTP_OK) {

発火しない理由がわかるはずです。

おそらく、それらは等しくありません。

于 2013-03-15T03:15:48.720 に答える