Help us understand the problem. What is going on with this article?

最近リリースされたOkHttp3について

More than 3 years have passed since last update.

たまたまChangeLogを読んだので、気になったポイントを紹介します。

Package名を変更した

3系になってcom.squareup.okhttpからokhttp3に変更されています。理由はJakeのブログに詳しく書かれていますが、要約すると、2系のコードと共存出来るようにすることで、部分的/段階的に3系のコードを取り入れることを可能にして、バージョンアップの負担を減らすことが目的のようです。

グローバルなconnection poolの仕組みがなくなった

2系は全てのOkHttpClientのインスタンスがグローバルなコネクションプールを共有していたらしいのですが(知らなかった... :fearful:)、それがなくなりました。 そのため、3系では一つのOkHttpClientインスタンスをアプリケーション全体で使いまわすことが薦められています。

OkHttpClientが不変になった

2系のOkHttpClientはgetter/setterがあったため、途中で設定の変更が可能でした。このため内部ではリクエストを行う度にOkHttpClientのスナップショット(クローン)を生成していましたが、3系ではビルダーによって設定を記述し、不変なインスタンスを生成する方針に変更されました。(厳密にはコネクションプールやキャッシュなど不変でないものも含まれます)

OkHttpClientがCall.Factory interfaceを継承するようになった

これによりテストが容易になるそうです。

java.net.CookieHandlerの利用をやめた

CookieJar interfaceCookieモデルに置き換えられました。これにより最新のRFCの仕様で定義されている属性を利用出来るようになったらしいです。

FormやMultipartまわりが新しくなった

FormEncodingBuilderFormBodyFormBody.Builderに、MultipartBuilderMultipartBodyMultipartBody.PartMultipartBody.Builderに置き換わり更に機能が強力になったとのことです。

Tagでリクエストを一括キャンセルする仕組みがなくなった

今までは、Requestインスタンスに設定したtagによってリクエストを一括キャンセルする方法がありましたが廃止になりました。その代わりにDispatcherqueuedCalls,runningCallsというメソッドが生えたので、直接Callインスタンスを受け取って、自分でCall#cancelをコールしてくださいとのことです。

getXXXとかsetXXXとか書くの辞めた

たしかにコード見るとget-prefixやset-prefixがないです。(Jakeがkotlinハマってる影響ですかね..)

かなり適当な訳なので、詳細はChangeLogをご確認下さい。:bow: 紹介しなかった変更点もいくつかあります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした