今天自己写代码使用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 错误 可能出现的原因相关推荐

  1. 导致403错误的原因和解决方法

    一.导致403错误的主要原因 403 Forbidden错误的原因和解决方法 1.你的IP被列入黑名单. 2.你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了. 3.网站域名解析 ...

  2. DEV C++编写程序出现 [errror]Id returned 1 exit status错误可能出现的原因

    昨天调试C程序时,出现了这个错误,心态都要崩了.但好在通过自己一段一段程序的调试,终于还是把错误给发现了.我将其写下来,希望和我一样的小白在遇到这样的错误时,能够及时发现. 当出现如下错误时: 可能有 ...

  3. 调用 from sklearn.datasets import fetch_lfw_people 出现HTTPError 403错误

    调用 from sklearn.datasets import fetch_lfw_people 出现HTTPError 403错误 调用fetch_lfw_people()方法下载LFW(Lable ...

  4. 服务器出现HTTP400、401、402、403错误原因及解决方法

    HTTP 400 - 请求无效 HTTP 401.1 - 未授权:登录失败 HTTP 401.2 - 未授权:服务器配置问题导致登录失败 HTTP 401.3 - ACL 禁止访问资源 HTTP 40 ...

  5. 403 Forbidden错误的原因和解决方法(转)

    这几天刚接手一批新做的网站,在访问网站的时候,会时不时的出现403 Forbidden错误,浏览器会给出403 Forbidden错误提示,在打开Access Error中列出的URL之后, 出现以下 ...

  6. 网站出现403 Forbidden错误的原因以及怎么解决的方法

    这几天刚接手一批新做的网站,在访问网站的时候,会时不时的出现403 Forbidden错误,浏览器会给出403 Forbidden错误提示,在打开Access Error中列出的URL之后, 出现以下 ...

  7. 403 Forbidden错误的原因和解决方法

    文章目录 前言 1.403 forbidden是什么意思? 2.403错误代码的分类介绍 3.导致403错误的主要原因 4.解决403 forbidden错误的方法 4.1.重建`DNS`缓存 4.2 ...

  8. 网站服务器报403错误怎么解决办法,Http 403错误原因及解决办法

    问题介绍 403是Web服务器返回的一种非常常见的错误代码,Http协议中对403错误定义如下, 403 Forbidden The server understood the request, bu ...

  9. Android使用自定义View时:Error inflating class错误的原因。

    当在布局文件里使用自定义的View的时候,出现Error inflating class错误的原因: 1.没有定义inflate需要的默认构造函数: eg:自定义View为TestView,需要定义T ...

最新文章

  1. Nature:根系菌群参与磷胁迫和免疫的平衡
  2. AI、ML 和数据工程 | InfoQ 趋势报告(2021 年)
  3. android studio 使用adb
  4. 人脸识别有风险,美国全面禁止,可为什么中国却全面推广?
  5. Vim和Vi的常用命令
  6. linux安装Linux下软件的安装与卸载方法
  7. MATLAB实现一个简单的车牌识别小程序
  8. ActiveX控件开发流程
  9. leetcode每日一题 838. 推多米诺 正解 双指针~这题很考察模拟逻辑——是一道不错的模拟题
  10. 读丁磊内部邮件有感“丁磊点评:微信5分 陌陌4分 易信0分 来往负分”
  11. 陈彤离职,新浪在门户竞争中将继续被边缘化
  12. [HTML5游戏开发]挑战横版ACT(三):遇红颜英雄亦多情
  13. matlab自动调焦,光学系统离焦对自动调焦评价函数的影响
  14. 盘点PS使用小技巧。
  15. 如何使用Qt调试飞机大战
  16. 塞尔达传说-荒野之息 体验复盘
  17. Matlab声音处理教程
  18. 上顿号符号_标点符号的用法一一顿号
  19. 阿里聚安全攻防挑战赛第三题Android PwnMe解题思路
  20. 多元相关性分析_初发儿童1型糖尿病患者甲状腺激素水平与糖脂代谢的相关性研究...

热门文章

  1. 唐老师讲运算放大器(第七讲)——运放的应用
  2. 第一部分 开发环境配置
  3. Deno 和 Node 的区别
  4. POI 单元格条件格式设置
  5. 产品经理需求调研方法及注意事项
  6. OpenMP 不允许使用 != 操作
  7. 如何彻底卸载3dmax2020_「技巧」别再直接在桌面上卸载APP了,这才是手机卸载APP的正确方式!...
  8. 藏在80年代的儿时游戏里的”通证经济“
  9. 51单片机_11-2 蜂鸣器播放音乐
  10. 二十一个巧记英语语法的口诀