有些网站的网页或图片通过浏览器访问,是没有问题的,可以正常访问。但通过resttemplate或httpclient访问时就会出现403 Forbidden,
百度了一下,出现403有以下原因:
1.你的IP被列入黑名单 2.你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了 3.网站域名解析到了空间,但空间未绑定此域名 4.你的文件在下没有执行权限 5.在不允许写/创建文件的目录中执行了创建/写文件操作 6.以http方式访问需要的网址 7.浏览器不支持SSL 128时访问SSL 128的连接 8.连接的用户过多,可以过后再试 9.在身份验证的过程中输入了错误的密码 这里个人感觉应该是原因2。 解决方法:通过设置user-agent骗过服务器端安全检查。 这里采用的是resttemplate。 代码:
RestTemplate rt = new RestTemplate();String resourceUrl = "http://www.xinhuanet.com/images/syicon/space.gif";
HttpHeaders headers = new HttpHeaders(); headers.set(HEADER_USER_AGENT, USER_AGENT_VALUE); HttpEntityentity = new HttpEntity (headers); ResponseEntity responseEntity = rt.exchange(resourceUrl, HttpMethod.GET, entity, byte[].class);