403 常见原因 java_科普 httpClient 403 Forbidden (JAVA方向分析)

Forbidden的意思就是被禁止的,就是说你没有权限访问此站。

访问时出现403 Forbidden错误的原因如下,我举例两种视角来看待此原因,具体问题要自行排查。

视角一(详细描述 太麻烦了 就写这么多吧 懒)

1.你的IP被列入黑名单

2.你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了

3.网站域名解析到了空间,但空间未绑定此域名

4.你的网页脚本文件在当前目录下没有执行权限

5.在不允许写/创建文件的目录中执行了创建/写文件操作

6.以http方式访问需要ssl连接的网址

7.浏览器不支持SSL 128时访问SSL 128的连接

8.连接的用户过多,可以过后再试

9.在身份验证的过程中输入了错误的密码

视角二

0访问被拒绝

1执行访问被拒绝

2读取访问被拒绝

3写入访问被拒绝

4 需要使用 SSL 查看该资源

5需要使用 SSL 128 查看该资源

6客户端的 IP 地址被拒绝

7需要 SSL 客户端证书

8客户端的 DNS 名称被拒绝

9太多客户端试图连接到 Web 服务器

10Web 服务器配置为拒绝执行访问

11密码已更改

12服务器证书映射器拒绝了客户端证书访问

13客户端证书已在 Web 服务器上吊销

14在 Web 服务器上已拒绝目录列表

15Web 服务器已超过客户端访问许可证限制

16客户端证书格式错误或未被 Web 服务器信任

17客户端证书已经到期或者尚未生效

18无法在当前应用程序池中执行请求的URL

19无法在该应用程序池中为客户端执行CGI

20Passport 登录失败

结合实例讲讲吧,我最近在准备httpClient的教程,准备期间,做了一些常见的异常,比如httpClient访问网页出现403 Forbidden错误提示。

常识告诉我将问题锁定在Http头字段的问题上。

如果你对这个不太了解,部分常识不晓得的话,可以使用HttpWatch 检测浏览器的头字段设置,去找寻可能存在问题。

我遇到的是请求头问题,先介绍下浏览器User-Agent的格式:

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

解决方法如下,加行代码,然后就可以正常访问了,自此我的问题解决了。

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

(注:HttpUriRequest类是HttpGet 和 HttpPost的父类,此处带吗也可以写为

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

另外,User-Agent字段做一些统计信息的提交,只要遵从特定格式即可,可以根据自己的需要添加特定字段。

还有一种常见的情况,就是服务器限制了浏览器的referer,即不允许用户的地址直接访问该地址。

这是因为某些网站做了盗链的限制,仅限于本网站链接导入的网址才可以访问,解决办法是执行网页访问前,设置一个假的referer。关键代码如下:

HttpClient httpclient=new DefaultHttpClient();

HttpGet httpGet=new HttpGet("http://...");

httpGet.setHeader("Referer","http://...");

httpclient.execute(httpGet);

httpClient 很牛的,里面的道道很多,大家要多记多积累啊。

—–下面有个“顶”字,你懂得O(∩_∩)O哈哈~

—–乐于分享,共同进步!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值