httpclient请求返回403

使用httpclient访问网络url做爬虫时,出现403的情况:

微信截图_20180712151925.png

查了查403的几种可能性:

403 禁止访问:访问被拒绝 
403.1 禁止访问:执行访问被拒绝 
403.2 禁止访问:读取访问被拒绝 
403.3 禁止访问:写入访问被拒绝 
403.4 禁止访问:需要使用 SSL 查看该资源 
403.5 禁止访问:需要使用 SSL 128 查看该资源 
403.6 禁止访问:客户端的 IP 地址被拒绝 
403.7 禁止访问:需要 SSL 客户端证书 
403.8 禁止访问:客户端的 DNS 名称被拒绝 
403.9 禁止访问:太多客户端试图连接到 Web 服务器 
403.10 禁止访问:Web 服务器配置为拒绝执行访问 
403.11 禁止访问:密码已更改 
403.12 禁止访问:服务器证书映射器拒绝了客户端证书访问 
403.13 禁止访问:客户端证书已在 Web 服务器上吊销 
403.14 禁止访问:在 Web 服务器上已拒绝目录列表 
403.15 禁止访问:Web 服务器已超过客户端访问许可证限制 
403.16 禁止访问:客户端证书格式错误或未被 Web 服务器信任 
403.17 禁止访问:客户端证书已经到期或者尚未生效 
403.18 禁止访问:无法在当前应用程序池中执行请求的URL 
403.19 禁止访问:无法在该应用程序池中为客户端执行CGI 
403.20 禁止访问:Passport 登录失败

通过一系列操作,排除法将问题锁定在Http头字段的问题上。使用HttpWatch 检测浏览器的头字段设置,发现User-Agent字段可能存在问题。

打印源生的的User-Agent字段是null,尝试设置UA字段,看下IE浏览器User-Agent的格式:

 

"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.4)"

 

httpGet.addHeader("User-Agent",“Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.4)”);

 

 

可以正常访问了。

关于403,还存在另外一种可能,Referer 字段,某些网站做了盗链的限制,仅限于本网站链接导入的网址才可以访问,这时我们可以设置Referer字段:

 

httpGet.addHeader("Referer","http://xxx");

 

http://xxx就是要爬取的网址的url,图片和文件防止盗链的限制多一些,也可以在下载图片或其他类型文件的请求中添加Referer头字段,问题就解决啦。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值