HttpClientについてのメモ

androidでネットワーク通信をするときHttpCientを利用しているのだが、基本コピペですませていたので基本的な部分を少し調べてみた。

HttpClientは以下の様なステップでレスポンスを取得する。
1.HttpClientのインスタンスを作る
2.Httpメソッドのうちから適当なものを選び、インスタンスを作る。接続するURLはコンストラクタに渡される
3.HttpClientに2で作ったインスタンスを渡し実行
4.レスポンスを得る
5.コネクションを開放する
6.レスポンスを処理する
(エラーを考慮しないとこのような流れとなるらしい。)

・実行したメソッド(例えばGETやPOST)などはフリーズするなどして接続が終了するまで接続を待ち続けるため、この5にあたるコネクションの開放はエラーの有無に関わらず忘れてはならない。

・また、3の部分ではHttpExceptionやIOExceptionを考慮し例外処理を記述しなければならない。(3で投げられる例外はこの二つらしい)

・HttpExceptionはリクエストを送る事ができなかったり、HTTPの仕様から外れていたためレスポンスが処理されなかった場合。
・IOExceptionは一度きりのI/Oの問題が起こった場合であることが多い。
(リクエスト自体に問題がある場合はHttpException、何らかの問題によって一時的に通信が失敗している場合はIOExceptionという事なのかな?)

・デフォルトのHttpClientではIOExceptionが投げられた場合、3回まで正常な通信を試みる。このリトライの設定はカスタマイズできる。

(参考:http://hc.apache.org/httpclient-3.x/tutorial.html )

基本的な部分はこんなところらしい。
簡単な英語でもライブラリの仕様や使い方読むの辛い…