みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Java HTTP_OKについて

if (connection.getResponseCode() == HttpURLConnection.HTTP_OK)
ーーーーーーーーー
上記の一行について教えて頂きたいのですが
HttpURLConnectionというメソッドはhttp接続ができているか確認しているメソッドで
上の一行は接続がOKだった場合、この処理をしてくださいね。という意味と捉えて良いのでしょうか?

間違ってるところばかりかも知れませんが教えて頂けたらと思います。

投稿日時 - 2017-03-31 14:24:06

QNo.9311590

暇なときに回答ください

質問者が選んだベストアンサー

そうです。

投稿日時 - 2017-03-31 15:07:15

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>HttpURLConnectionというメソッドはhttp接続ができているか確認しているメソッドで
上の一行は接続がOKだった場合、この処理をしてくださいね。という意味と捉えて良いのでしょうか?

そういう意味に捉えて構いませんが、正確ではありません。

getResponseCode()メソッドは「サーバーへの接続が出来ていればHTTP応答メッセージから状態コードを取得し、取得できた場合は状態コードを返し、接続したが状態コードを取得出来ない場合は-1を返し、サーバーへの接続が失敗していれば例外を発生させる」と言うメソッドです。

HttpURLConnection.HTTP_OKと言うフィールドは、固定値で「200」と言う値を持ちます。

つまり、この1行は

・サーバーへの接続が出来た(例外が発生しなかった)

・サーバーに接続して状態コードを所得してみたら、その状態コードが200だった

と言うのを調べています。

なお「サーバーに接続できなかった場合」には「例外が発生」します。

また「サーバーに接続できた」としても、状態コードが「200じゃない可能性」もあります。例えば「状態コードが404だった(Page not found)」とかって場合があります。

更に言えば「サーバーに接続できた」としても「状態コードが返ってこなかった(タイムアウトした)」って場合もあり、その時は、getResponseCode()が-1を返します。

なので「接続できたかどうか確認している」だけではありません。

「サーバーに接続できて、状態コードが取得できて、取得した状態コードが200だった」と言うのを調べているのです。

投稿日時 - 2017-03-31 15:21:10

あなたにオススメの質問