Android踩坑日记:Okhttp设置User-Agent你可能没遇到的坑

Okhttp设置User-Agent你可能没遇到的坑

  • Http Header之User-Agent
       User-Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent页简称UA。她是一个特殊字符串头,是一种想访问网站提供你说使用的浏览器类型和版本,操作系统和版本,浏览器内核等信息的标识,用户所访问的网站可以显示不同的排版,而为用户提供更好的体验或者进行信息统计

  • 获取OkHttp正确的User-Agent

   Okhttp走的并不是原生的http请求,因此他在header里面并没有真正的User-Agent,而是”okhttp/版本号”这样的字符串,因此后台需要统计信息,要求传入正确的User-Agent,那么我们如何User-Agent并设置给Okhttp?

    /**
     * 返回正确的UserAgent
     * @return
     */
    private  static String getUserAgent(){
        String userAgent = "";
        StringBuffer sb = new StringBuffer();
        userAgent = System.getProperty("http.agent");//Dalvik/2.1.0 (Linux; U; Android 6.0.1; vivo X9L Build/MMB29M)

        for (int i = 0, length = userAgent.length(); i < length; i++) {
            char c = userAgent.charAt(i);
            if (c <= '\u001f' || c >= '\u007f') {
                sb.append(String.format("\\u%04x", (int) c));
            } else {
                sb.append(c);
            }
        }

        LogUtils.v("User-Agent","User-Agent: "+ sb.toString());
        return sb.toString();
    }
  • 给Okhttp设置User-Agent:
new Request.Builder().url(url).headers(headers2).put(body).removeHeader("User-Agent").addHeader("User-Agent",getUserAgent()).build();
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值