android – 用volley替换user-agent中的appname

android – 用volley替换user-agent中的appname,第1张

概述如何在用户代理的第一部分中使用app-name更改请求标头中的User-Agent,如下所示: Myappname( Linux; U; Android 4.3; Galaxy Nexus Build / JWR66Y) 请注意,我不想更改user-agnet字符串中的其他参数 我用截击请求. 有任何动态建议吗? 我想在我的Android应用程序中做同样的事情.也就是说,修改User-Agent标 如何在用户代理的第一部分中使用app-name更改请求标头中的User-Agent,如下所示:
Myappname( Linux; U; Android 4.3; galaxy Nexus Build / JWR66Y)

请注意,我不想更改user-agnet字符串中的其他参数

我用截击请求.

有任何动态建议吗?

解决方法 我想在我的AndroID应用程序中做同样的事情.也就是说,修改User-Agent标头但仅添加/添加某些内容并保留“原始”内容(或大部分内容).

@athor答案的问题在于,如果仔细观察,volley在使用httpClIEntStack时仅使用userAgent字符串,这适用于使用AndroID API Level 8较低的设备(换句话说,在少数情况下).对于API级别9或更高级别,它使用HurlStack,或者堆栈或您自己的,如果您将其作为newRequestQueue的参数传递,在我的情况下,在大多数情况下,可能是HurlStack的子类,例如OkhttpStack.
这些,不使用你在那里看到的userAgent字符串,据我所知,不提供设置用户代理的方法.

我最终做的是,在我的一个Volley的Request< T>子类中,我覆盖了getheaders方法,并对User-Agent头进行了必要的调整.以下是将应用程序的名称和版本添加到原始User-Agent标头的代码段.

@OverrIDepublic Map<String,String> getheaders() throws AuthFailureError {    Map<String,String> headers = super.getheaders();    if (headers == null || headers.equals(Collections.emptyMap())) {        headers = new HashMap<String,String>();    }    if (context != null) {        StringBuilder label = new StringBuilder();        label.append(context.getApplicationInfo().loadLabel(context.getPackageManager()));        label.append("/");        try {            PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackagename(),0);            label.append(pInfo.versionname);        } catch (nameNotFoundException e) {        }        label.append(" ");        label.append(System.getProperty("http.agent"));        headers.put("User-Agent",label.toString());    }    return headers;}

请注意,我正在使用System.getProperty(“http.agent”)来访问“原始”User-Agent标头,因为我找不到其他方法.当然,您可以尝试修改此字符串以删除Dalvik / 1.6.0,但我不知道这是否100%安全.
另外,请注意我正在使用AndroID Context来阅读应用名称和版本.

希望这可以帮助!

总结

以上是内存溢出为你收集整理的android – 用volley替换user-agent中的appname全部内容,希望文章能够帮你解决android – 用volley替换user-agent中的appname所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1129419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存