HTTP错误401.2尝试使用DefaultHttpClient调用带有用户名和密码的URL时

时间:2011-12-03 14:44:05

标签: java android http

这是我的代码:

private DefaultHttpClient httpClient;

public HttpAPIRequest(String authScope, int port, Credentials credentials){
    httpClient = new DefaultHttpClient();
    httpClient.getCredentialsProvider().setCredentials(
            new AuthScope(authScope, port), 
            new UsernamePasswordCredentials(credentials.getUsername(), credentials.getPassword()));
}

public String request(String apiUrl) throws ClientProtocolException, IllegalStateException, IOException{

    HttpGet httpGet = new HttpGet(apiUrl);
    HttpResponse response = httpClient.execute(httpGet);
    return getResponseBody(response);
}

这是我在我的回复者中得到的错误

  

HTTP错误401.2 -   未经授权:由于服务器而拒绝访问   configuration.Internet Information Services(IIS)

     

您无权使用以下方式查看此目录或页面   您提供的凭据,因为您的Web浏览器正在发送   未配置Web服务器的WWW-Authenticate头字段   接受。

我怎样才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

有几种方法可以对URL进行身份验证,而您收到的错误表明您正在发送WWW-Authenticate标头,但Web服务器未配置为接受它。您要对哪个网址进行身份验证?当您尝试使用常规Web浏览器访问它时,它会是什么样子?

很可能,它配置为“基于表单的身份验证”,这意味着有一个包含Web表单的普通网页,您可以通过发布表单参数等来编写脚本。