Android Apache HttpClient 请求访问返回403 forbidden
来源:互联网 发布:淘宝怎样发链接给客服 编辑:程序博客网 时间:2024/05/22 16:40
Android,使用Apache HttpClient 和 HttpURLConnection 访问服务器接口,被拒绝,返回403 forbidden,然而同样的URL使用浏览器访问是正常的。
(注:本篇问题仅限于Http请求,若是Https请求可先检查SSL设置)
查了下关于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)"
HttpUriRequest.setHeader("User-Agent",“Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.4)”);
(注:HttpUriRequest类是HttpGet 和 HttpPost的父类)
可以正常访问了。
另外:我们可以使用User-Agent字段做一些统计信息的提交,只要遵从特定格式即可,例如:
“Mozilla/5.0 (Android/4.0.3; HUAWEI U9200; IMEI/111111111111111; IMSI/111111111111)”
可以根据自己的需要添加特定字段。
自此我的问题解决了。
关于403,还存在另外一种可能,Referer 字段,某些网站做了盗链的限制,仅限于本网站链接导入的网址才可以访问,这时我们可以设置Referer字段:
HttpUriRequest.setHeader("Referer","http://,,,");
使用HttpURLConnection访问的同学可以是用
conn.setRequestProperty("Referer", "http://,,,");
value字段可以是访问接口的域名地址。
相比起接口,图片和文件防止盗链的限制更多一些,也可以在下载图片或其他类型文件的请求中添加Referer头字段,问题就解决啦。
- Android Apache HttpClient 请求访问返回403 forbidden
- Apache访问localhost页面403Forbidden
- android使用apache httpclient发送post请求
- 监控Apache Httpclient的Http请求和返回
- apache svn 403 forbidden 总提示没有访问权限
- apache svn 403 forbidden 总提示没有访问权限
- Mac启动Apache之后访问localhost提示403 Forbidden
- httpclient 请求返回字符串
- HTTPClient Referer 解决403 forbidden
- 解决HttpClient访问返回403 forbiddent
- apache 403 forbidden解禁
- Apache Forbidden 403 错误
- Apache 下403 Forbidden
- Apache SVN forbidden 403
- apache virtualhost 403 forbidden
- Apache 403 Forbidden error
- Apache httpd Forbidden 403
- Apache显示403,Forbidden
- 在做游戏测试过程中的总结
- 开篇第一章
- 用递归算法判断一个数组是否递增
- 3.4 从无头单链表中删除节点
- Cocoa Touch命名初探
- Android Apache HttpClient 请求访问返回403 forbidden
- 为什么C语言在2013年仍然很重要:一个简单的例子
- 替换空格(从后往前依次替换的思想)
- Populating Next Right Pointers in Each Node
- ssh 安装
- 10本IT历史必读书
- 职场人生(十六):2013 回想这多半年走过来的路
- 梦想在此刻启航,前端工程师
- 图像数学形态学变换