java - Android NTLM 获取 HTTP/1.1 401 未经授权

标签 java android authentication sharepoint ntlm

我正在尝试从共享点服务器获取数据。 以下是我的代码。

    DefaultHttpClient httpclient = new DefaultHttpClient();

    httpclient.getAuthSchemes().register("ntlm", new NTLMSchemeFactory());
    httpclient.getCredentialsProvider().setCredentials(new AuthScope("masconsult.eu", -1),
            new NTCredentials(username, password, "", ""));
    HttpGet httpGet = new HttpGet(webserviceUrl);
    httpGet.addHeader("Content-type", "application/json");
    httpGet.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
    // HttpResponse response="";
    String responseXML = "";
    HttpResponse response = httpclient.execute(httpGet);
    response.getStatusLine().getReasonPhrase();
    responseXML = EntityUtils.toString(response.getEntity());
    Toast.makeText(this, responseXML, Toast.LENGTH_LONG).show();

我收到响应 HTTP/1.1 401 未经授权。即使我已经添加了所有正确的凭证。 在 Chrome 浏览器中,它使用相同的凭据工作正常。 请建议我对代码进行任何更改。

最佳答案

现在可以正常工作了。 我用标题修改了我的代码。

 DefaultHttpClient httpclient = new DefaultHttpClient();
    httpclient.getAuthSchemes().register("ntlm", new NTLMSchemeFactory());
    httpclient.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new NTCredentials(username, password, "", ""));
    HttpGet httpGet = new HttpGet(webserviceUrl);
    httpGet.addHeader("accept", "application/json;odata=verbose");
    httpGet.addHeader("content-Type", "application/json;odata=verbose");
    httpGet.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
    HttpResponse response = httpclient.execute(httpGet);
    System.out.println("Responseeee" + response.getStatusLine());
    responseXML = EntityUtils.toString(response.getEntity());
    new JSONObject(responseXML).toString();

关于java - Android NTLM 获取 HTTP/1.1 401 未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40760285/

相关文章:

android - 在 Android 中使用 Volley for GIthub 进行基本身份验证。获取错误代码 422

authentication - 使用 simplehttpserver 进行基本身份验证

java - 动态表格 :select and form:option in Spring form tags

java - 将不同的字符串数组添加到 List<String[]> 中,但返回相同的值

Java + MySQL 或 LDAP 服务器状态

android - viewModelScope 未取消

android - 按钮选择器不起作用

java - 使用 ImageGetter 从 HTML 抓取图像时出现内存不足错误

apache - ReSTLer ssl https 重定向

java - Eclipse 代码帮助显示错误的文档格式