Retrofit turns your HTTP API into a Java (or Kotlin) interface.
これはAndroidじゃなくてJDKのインターフェースの設計の問題なのですが、HttpURLConnectionは入出力エラーが発生した際にIOExceptionを投げるという規定があります。 問題は、HTTPステータスコードが400番台ないし500番台のコードのボディを読もうとした際に、getInputStream()を使うと入出力エラー扱いされてIOExceptionが発生することです。 最近のRESTfulなサーバーインターフェースの設計だと、HTTPステータスコードに意味を持たつつ、レスポンスボディにコンテンツを渡すのが主流ですが、HttpURLConnectionのちょっとしたサンプルでは400 Bad Requestや401 Unauthrizedが返されることを考慮していないことが多いです。 HttpURLConnectionを本格的に使おうとすると、大抵ここで躓くことになり
Java で HTTP 通信するときのクライアントライブラリを何にするかいつも悩むのですが、最近 google-http-java-client が気になってたのでちょっと使ってみました。 汎用的に HTTP 通信ができればよい、というような用途にはちょうど良さそうです。 数年前からベータ版や RC 版としては存在していましたが、正式にリリースされたのは今年のようです。 google-http-java-client について プロジェクトホーム: google-http-java-client - Google HTTP Client Library for Java - Google Project Hosting Google によって書かれた Java の HTTP クライアントライブラリです。 HTTP トランスポートの抽象化がされており、実際の HTTP 通信を行う低層のライブ
Android アプリで HTTP 通信を行うときは Volley を使っているのですが、とある事情により、もうちょっと直接的 (?) に HTTP 通信を行う必要がある場面に出くわしたときに使ってみたのが Square の OkHttp 2.0 です。 An HTTP & SPDY client for Android and Java applications とあるように、 SPDY にも対応していて、 Android に限らず、 Java アプリケーション中でも使えるようです。今回は Android プロジェクトで使ってみた雑感を書いてみたいと思います。 プロジェクトへのインストール OkHttp のサイトには jar ファイルをダウンロードするか、 MAVEN の設定をする方法が書いてありますが、 Android Studio ならば build.gradle の depende
ブログ等に掲載されているHttpComponentのサンプルコードは、重要なところが端折られて紹介されている(というか間違っている事を知らずに書いている疑惑すらある)ことが多いので、正しいサンプルコードを書いておく。 まぁ、ここだけでなくApache HttpComponentsのドキュメントもちゃん読みましょう。あ、Androidのリファレンスにはロクに使い方が書いてないので、あんなゴミだけ読んでてもダメですよ。 要点 ポイントは2つ。 ResponseHandlerを使ってコードを書く HttpResponseの内部リソースを自動で解放してくれるので、ミスがなくなり、コードも簡潔になる。ブログ等ではHttpResponseを使わないコードもよく掲載されているが、リソースの解放処理が記述されていないことが多いのであまりよろしくない。 なお、ResponseHandlerを使わずに自分でリ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く