httpclient header useragent mozilla

本文介绍如何使用HttpClient模拟浏览器发送请求,通过设置User-Agent头部信息来避免被网站识别为非浏览器请求,实现正常抓取网页内容。

有的网站会先判别用户的请求是否是来自浏览器,如不是,则返回不正确的文本,所以用httpclient抓取信息时在头部加入如下信息:
  header.put("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 1.7; .NET CLR 1.1.4322; CIBA; .NET CLR 2.0.50727)");

 

 

 

在默认情况下,HttpClient的Request的Head中
User-Agent的值是Jakarta Commons-HttpClient 3.0RC1,如果需要改变它(例如,变为Mozilla/4.0),必须在调用之前运行如下语句:
System.getProperties().setProperty("httpclient.useragent", "Mozilla/4.0");

 

 

 

 //设置http头 
        List <Header> headers = new ArrayList <Header>(); 
        headers.add(new Header("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)")); 
        httpClient.getHostConfiguration().getParams().setParameter("http.default-headers", headers); 
 
        GetMethod method = new GetMethod("http://www.baidu.com"); 
        method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, 
                new DefaultHttpMethodRetryHandler(3, false)); 
        try { 
            int statusCode = httpClient.executeMethod(method); 
 
            if (statusCode != HttpStatus.SC_OK) { 
                System.out.println("Method failed code="+statusCode+": " + method.getStatusLine()); 
 
            } else { 
                System.out.println(new String(method.getResponseBody(), "gb2312")); 
            } 
        } finally { 
            method.releaseConnection(); 
        } 
    } 

 


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值