HttpClient返回403 forbiddenn问题
2016-04-22 10:40
381 查看
想要做一个群博(本身是有的,由于CSDN的rss订阅不符合规范没法进行抓取,自己打算手动实现抓取操作),但是通过HttpClient进行网页源码获取的时候竟然发现返回的是403 forbidden,有点尴尬了。然后网上查找资料之后发现说是要设置请求参数,然后想着是不是HttpClient是不是有什么setParameter方法,找了一下果然有,然后向下面这样设置了参数:
然而无济于事,既然作为一个请求有请求参数,那么是不是应该也有请求头部呢,没错,终于找到解决403 forbidden的办法了,通常情况下,通过浏览器去请求一个网页时,浏览器会将User-Agent包含在请求头部当中,如果直接通过HttpClient去访问一个网页而不设置请求头部,就有可能被服务器拒绝响应,因此只要像下面这样设置了请求头部就可正常访问了:
这样就可以模拟浏览器去请求一个网页了!
+++++++++++++++++++++++++++++++++++++
题外话
希望通过博客帮助自己去记录一些东西,记录一些问题,或许问题很小,但是需要的时候看看总会有很大的帮助的!
HttpClient httpclient = new DefaultHttpClient(); httpclient.getParams().setParameter("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11");
然而无济于事,既然作为一个请求有请求参数,那么是不是应该也有请求头部呢,没错,终于找到解决403 forbidden的办法了,通常情况下,通过浏览器去请求一个网页时,浏览器会将User-Agent包含在请求头部当中,如果直接通过HttpClient去访问一个网页而不设置请求头部,就有可能被服务器拒绝响应,因此只要像下面这样设置了请求头部就可正常访问了:
HttpGet httpgets = new HttpGet(url); httpgets.setHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3");
这样就可以模拟浏览器去请求一个网页了!
+++++++++++++++++++++++++++++++++++++
题外话
希望通过博客帮助自己去记录一些东西,记录一些问题,或许问题很小,但是需要的时候看看总会有很大的帮助的!
相关文章推荐
- 写到世界充满爱:专访 RSSHub 作者 DIYgod
- ASP.NET MVC Web API HttpClient简介
- SXNA RSS Blog 聚合器程序
- 使用httpclient实现免费的google翻译api
- 用 Asp.Net 建立一个在线 RSS 新闻聚合器的方法
- ASP.NET读取RSS的方法
- PHP封装的HttpClient类用法实例
- Android 中HttpURLConnection与HttpClient使用的简单实例
- Android通过HttpURLConnection和HttpClient接口实现网络编程
- Android中HttpURLConnection与HttpClient的使用与封装
- Python处理RSS、ATOM模块FEEDPARSER介绍
- php生成rss类用法实例
- php实现的RSS生成类实例
- php生成RSS订阅的方法
- PHP解析RSS的方法
- Java利用HttpClient模拟POST表单操作应用及注意事项
- HttpClient 在Java项目中的使用详解
- 基于Java HttpClient和Htmlparser实现网络爬虫代码
- 谈谈HttpClient使用详解
- java实现HttpClient异步请求资源的方法