Android OkHttp change User-Agent header
Android OkHttp addHeader(“User-Agent”) does not work troubleshooting.
Symptom
Use OkHttpClient.Builder()
to add User-Agent
header.
val okHttpClient = OkHttpClient.Builder()
.addNetworkInterceptor { chain ->
val requestBuilder = chain.request().newBuilder()
.addHeader("User-Agent", userAgent)
With this code, server does not get new User-Agent
, it still use OkHttp default user agent, for example:
"User-Agent": "okhttp/3.14.9"
Troubleshooting
The OkHttp already have a default User-Agent
, addHeader()
does not override the default value.
Solution
Remove User-Agent
header before call addHeader("User-Agent", ...)
:
val okHttpClient = OkHttpClient.Builder()
.addNetworkInterceptor { chain ->
val requestBuilder = chain.request().newBuilder()
.removeHeader("User-Agent") // otherwise addHeader not work.
.addHeader("User-Agent", userAgent)
Reference
![](https://is2-ssl.mzstatic.com/image/thumb/Purple116/v4/aa/20/7d/aa207d3d-c050-14b9-f084-9e0e2afaa646/AppIcon-Primary-0-1x_U007emarketing-0-7-0-85-220.png/460x0w.webp)
OmniLock - Block / Hide App on iOS
Block distractive apps from appearing on the Home Screen and App Library, enhance your focus and reduce screen time.
![](https://is2-ssl.mzstatic.com/image/thumb/Purple116/v4/17/91/dc/1791dca0-047b-188c-23d3-00d7b3f33777/AppIcon-0-1x_U007emarketing-0-7-0-85-220.png/230x0w.webp)
DNS Firewall for iOS and Mac OS
Encrypted your DNS to protect your privacy and firewall to block phishing, malicious domains, block ads in all browsers and apps
Ad