LoginSignup
1
1

More than 5 years have passed since last update.

OkHttp は addHeader だと同じ名前のヘッダを上書きしてくれない

Last updated at Posted at 2019-02-20

以下、本文には誤りがあります。
https://square.github.io/okhttp/3.x/okhttp/okhttp3/Request.Builder.html
Request.Builder には、header という、メソッドがあり、それだと上書きしてくれるようです。
大変ありがたいコメントにより知ることができました。
ありがとうございます😊


まま

詳しくは読んでない
Headers.Builder の持ってる変数が List であることとおれが遭遇した事象だけでそうだと断定した

そもそも同じ名前のヘッダは仕様として許容されている

自動でトークンのリフレッシュとかを interceptor で行うような実装していると、ハマることがある

ので、こんな拡張関数で上書きするようにする

  private fun Request.Builder.overwrite(name: String, value: String): Request.Builder {
    return removeHeader(name) // Remove old one
      .addHeader(name, value)
  }

よかったですね

1
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1