日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android http 403 错误 可能出现的原因

發布時間:2023/12/20 Android 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android http 403 错误 可能出现的原因 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天自己寫代碼使用Retrofit下載百度搜索出來的圖片的時候,發現了報錯了,403。然后使用Glide卻可以加載圖片。

然后對Glide進行抓包,發現Glide請求的時候 http header 是這種格式的:

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36

而我自己的 請求默認是

User-Agent: okhttp/3.10.0

估計是百度對User-Agent有要求,所以我自己添加了一個正常的User-Agent請求頭就ok了。

public class UserAgentInterceptor implements Interceptor {@Overridepublic Response intercept(Chain chain) throws IOException {Request request = chain.request().newBuilder().removeHeader("User-Agent")//移除舊的.addHeader("User-Agent", WebSettings.getDefaultUserAgent(MyApplication.getInstance()))//添加真正的頭部,可以寫死,也可以動態獲取.build();return chain.proceed(request);} } HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);if (mOkHttpClient == null) {synchronized (RetrofitClient.class) {if (mOkHttpClient == null) {//設置Http緩存//Cache cache = new Cache(new File(BilibiliApp.getInstance().getCacheDir(), "HttpCache"), 1024 * 1024 * 10);mOkHttpClient = new OkHttpClient.Builder()//.cache(cache).addInterceptor(interceptor).addInterceptor(new UserAgentInterceptor())//.addNetworkInterceptor(new CacheInterceptor())//.addNetworkInterceptor(new StethoInterceptor()).retryOnConnectionFailure(true).connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS).writeTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS).readTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS).cookieJar(new CookieManger(context))//.addInterceptor(new UserAgentInterceptor()).build();}}}

?

總結

以上是生活随笔為你收集整理的Android http 403 错误 可能出现的原因的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。