簡體   English   中英

Android應用中的NTLM身份驗證

[英]NTLM authentication in Android app

我正在使用這里的 JCIFS庫在我的Android應用程序中使用NTLM身份驗證。當它剛剛訪問一個站點並解析了一個xml時,該應用程序運行良好,但現在我添加了NTLM auth它似乎不起作用。 任何人都可以從這段代碼中判斷出httpclient和輸入流之間的問題是什么?

DefaultHttpClient client = new DefaultHttpClient();
client.getAuthSchemes().register("ntlm", new NTLMSchemeFactory());
client.getCredentialsProvider().setCredentials(new AuthScope("http://www.musowls.org",80),
new NTCredentials(username, password, null, "musschool"));  
HttpGet request = new HttpGet("http://www.musowls.org/assignments/assignmentsbystudentxml.aspx");
 HttpResponse resp = client.execute(request);
 HttpEntity entity = resp.getEntity();
 InputStream inputStream = entity.getContent();

嘗試下面的代碼它可能會幫助你。

DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getAuthSchemes().register("ntlm", new NTLMSchemeFactory());

NTCredentials creds = new NTCredentials("user_name", "password", "", "http://www.musowls.org/");

httpclient.getCredentialsProvider().setCredentials(AuthScope.ANY, creds);
HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 5000);

HttpPost httppost = new HttpPost("http://www.musowls.org/assignments/assignmentsbystudentxml.aspx");
httppost.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
HttpResponse response = httpclient.execute(httppost); // ERROR HAPPENS HERE

responseXML = EntityUtils.toString(response.getEntity());
Log.d("Responce", responseXML);

1)從這里下載JCIFS: http ://jcifs.samba.org/

2)按照此處的說明操作: http//hc.apache.org/httpcomponents-client-ga/ntlm.html

長期以來一直困在這個問題上。

查看此主題中的答案,使用OkHttp3進行NTLM身份驗證調用:

https://stackoverflow.com/a/42114591/3708094

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM