我有一個連接到生產Web服務器時工作正常的android應用程序。開發服務器是爲測試將來的版本而創建的。這是一個使用用戶名/密碼鎖定的IIS服務器。發佈數據之前的Windows身份驗證,我錯過了什麼?
我想使用httpclient.getCredentialsProvider()發送用戶名和密碼,所以我可以在做任何事情之前對頁面進行身份驗證,但它似乎沒有正常工作,所以我假設我缺少一些代碼或做錯事。
我試圖搞亂憑證,併發送端口和完整的網址,但這並沒有工作,所以我只是把它切換到null和-1,從我收集意味着它應該在任何網站的任何端口上工作,但我嘗試過的每種方式仍然得到了不認證的相同結果。
這是我現在擁有的。
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
HttpConnectionParams.setSoTimeout(httpParams, 10000);
DefaultHttpClient httpclient = new DefaultHttpClient(httpParams);
httpclient.getCredentialsProvider().setCredentials(new AuthScope(null,-1), new UsernamePasswordCredentials("someusername", "somepassword"));
HttpPost httpost = new HttpPost("someURL");
其他不相關的代碼來設置名稱值對張貼
然後
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nvps, HTTP.UTF_8);
httpost.setEntity(formEntity);
HttpResponse response = httpclient.execute(httpost);
是NTLM或Kerberos? – JarrettV 2011-04-10 22:18:37