ApacheHTTPClient がAndroid 6.0で廃止されてからもう少しで1年ですね。
「useLibrary 'org.apache.http.legacy'」がいまだに残る Gradle。
取り消し線を表示し「早くこのコードを消してくれ」と訴えてくる AndroidStudio。
Android 7.0も出そうなので、そろそろ向き合おうと思います。
「ApacheHTTPClitentを使ったHTTP通信」から「URLConnection(HttpURLConnection)を使ったHTTP通信」への乗り換えについて複数回に分けて書きます。
今回は ApacheHTTPClitent がしていてくれたことの確認を行います。
そもそも、ApacheHTTPClitent はHTTP通信を行う上で必要な機能を提供してくれるクラスです。
下記はその機能の一部です。
- HTTPリクエストのリクエストデータ(ヘッダーやボディ)の設定方法の提供
- HTTPリクエストの実行
- レスポンスの取り扱い
- クッキーの管理
- 認証
- コネクションの管理
一部機能を挙げましたが、多機能すぎるため保守性・拡張性・互換性に問題が出始めたようです。
これらの問題を解決するために軽量で柔軟な URLConnection が登場したわけです。
では HttpURLConnection は何をしてくれるのかというと、「HTTP通信に必要最低限の機能」を提供してくれます。
- HTTPリクエストのリクエストデータ(ヘッダー)の設定方法の提供
- HTTPリクエストの実行
- 認証
- コネクションの管理
一部機能を挙げましたが、特に「リクエストデータ(ボディ)の設定」と「レスポンスデータの解析」は自前で実装することになります。
ApacheHTTPClitent が覆い隠していたリクエストとレスポンスの実装がプログラマーに提供されたような印象を受けます。
次回以降はサンプルコードを提示し、要点を説明していきます。
目次は下記のとおりです。
- GETメソッドでデータを取得する。
- POSTメソッドでフォーム情報(application/x-www-form-urlencoded)を送信する。
- POSTメソッドでJSONを送信する。
- POSTメソッドでファイルを送信する。
- POSTメソッドでマルチパート情報(multipart/form-data)を送信する。
- レスポンスの解析
- Cookieの管理方法
今回のまとめ
- ApacheHTTPClitent から URLConnectionへの乗り換えは必須です。
- URLConnection ではリクエストデータとレスポンスデータに対する操作は、自前で実装する必要があります。
android
0 件のコメント:
コメントを投稿