如何在chrome中修改User Agent,添加Http headers

如何在chrome中修改User Agent,添加Http headers,第1张

查询UserAgent一般分三种方式:

1,通过各浏览器自带的UserAgent修改功能查看当前浏览器UserAgent设置情况。如Maxthon(遨游)修改User Agent方法 中就可查看遨游浏览器的UserAgent 2,通过JS事件来查询。

2、通过网络上查找,修改Chrome的Usre Agent有3种方式,但有的方式是不起作用的。

给Chrome添加启动参数(有作用)

通过扩展-User-Agent Switcher(据我测试和网上的反应,不起作用)

用Chrome内置的开发者工具修改(也是不能起作用)

方法一:给Chrome添加--user-agent启动参数。这个是可以起作用的方法。

右键点击Chrome的快捷方式,在“快捷方式”-“目标”输入框,修改成类似于如下:

C:\Users\xxx\AppData\Local\Google\Chrome\Application\chrome.exe --user-agent="Mozilla/5.0 (iPhoneUCPU like Mac OS Xen) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A537a Safari/419.3"

其实就是在C:\...Application\chrome.exe后添加--user-agent参数。如果要换成其他的参数,修改--user-agent=后面双引号之间的字符串即可。

相信大部分人看不懂--user-agent=后的字符串的意思,我也看不懂,但是有专门的网站来介绍不同浏览器、设备的--user-agent参数,在网站的List of User Agent Strings页面列出了详细的各种平台各种浏览器的User Agent参数,并且有相信的参数说明。

比如我要将Chrome模拟成Blackberry 9000/ OS版本5.0.0.1067 /MIDP版本2.1的黑莓手机,则--user-agent=后面双引号之间的字符串改成如下:

BlackBerry9000/5.0.0.1067 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/302

首先,我们先看一下http的头信息到底是什么:

HTTP(HyperTextTransferProtocol) 即超文本传输协议,目前网页传输的的通用协议。HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务器给与响应。就整个网络资源传输而 言,包括message-header和message-body两部分。首先传递message- header,即http header消息。http header 消息通常被分为4个部分: general header, request header, response header, entity header。但是这种分法就理解而言,感觉界限不太明确,根据日常使用,大体分为Request和Response两部分。

在通常的servlet/jsp应用中,我们只是从http的header中取得信息,如果要设置信息,需要用到HttpClient,具体的设置方法如下:

HttpResponse response = null

HttpGet get = new HttpGet(url)

get.addHeader("Accept", "text/html")

get.addHeader("Accept-Charset", "utf-8")

get.addHeader("Accept-Encoding", "gzip")

get.addHeader("Accept-Language", "en-US,en")

get.addHeader("User-Agent", "Mozilla/5.0 (X11Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22")

response = client.execute(get)

HttpEntity entity = response.getEntity()

Header header = entity.getContentEncoding()

if (header != null)

{

HeaderElement[] codecs = header.getElements()

for (int i = 0i <codecs.lengthi++)

{

if (codecs[i].getName().equalsIgnoreCase("gzip"))

{

response.setEntity(new GzipDecompressingEntity(entity))

}

}

}

return response

其中,client为一个HttpClient的实力,创建方式如:

SchemeRegistry schemeRegistry = new SchemeRegistry()

schemeRegistry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()))

schemeRegistry.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory()))

PoolingClientConnectionManager cm = new PoolingClientConnectionManager(schemeRegistry)

cm.setMaxTotal(200)

cm.setDefaultMaxPerRoute(2)

HttpHost googleResearch = new HttpHost("research.google.com", 80)

HttpHost wikipediaEn = new HttpHost("en.wikipedia.org", 80)

cm.setMaxPerRoute(new HttpRoute(googleResearch), 30)

cm.setMaxPerRoute(new HttpRoute(wikipediaEn), 50)

DefaultHttpClient client = new DefaultHttpClient(cm)


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

原文地址: https://outofmemory.cn/bake/11374375.html

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

发表评论

登录后才能评论

评论列表(0条)

保存