如何解决java HttpClient 403禁止出现问题?
| 我使用HttpClient api对网站进行身份验证: DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST,443),new UsernamePasswordCredentials(args[0],args[1]));
HttpGet httpget = new HttpGet(\"http://..........\");
HttpResponse response = httpclient.execute(httpget);
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println(\"Response content length: \"
+ entity.getContentLength());
}
我有这个答案:
HTTP/1.1 403 Forbidden
Response content length: -1
但是使用浏览器,我可以使用相同的登录名和密码访问该页面!
我该如何解决这个问题?
解决方法
使用端口参数设置为443(HTTPS的默认端口)构造AuthScope对象。但是,您创建的HttpGet对象的URL指向HTTP(默认端口为80)。
尝试使用以下方法构造AuthScope:
new AuthScope(AuthScope.ANY_HOST,AuthScope.ANY_PORT)
或确保端口匹配。
,您需要仔细查看浏览器的实际身份验证方式。
您想做的是(我认为)使用HTTP基本身份验证发送凭据。如果站点设置为仅允许基于表单的身份验证和会话cookie,则它将忽略包含凭据的标头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。