我做了一個執行httpGet的應用程序。HTTP/1.1 400使用基本身份驗證的httpGet的錯誤請求
我的應用程序使用我自己的證書,因此服務器需要用戶登錄。 對於我使用的證書this教程。
對於HTTPGET我做了這個實現:
HttpClient client = new CustClient(getApplicationContext()); // HttpClient that uses my certificates
// Example send http request
final String url = "https://ip:port/";// <--in my implementation i've a right url
HttpResponse response = null;
HttpGet httpGet = new HttpGet(url);
//login
httpGet.addHeader("Authorization", "Basic "+Base64.encodeToString("root:root".getBytes(),Base64.DEFAULT));
StringBuilder testo = null;
try {
response = client.execute(httpGet);
InputStream contenuto = response.getEntity().getContent();
BufferedReader rd = new BufferedReader(new InputStreamReader(contenuto));
String line;
// Read response until the end
while ((line = rd.readLine()) != null) {
testo.append(line);
}
} catch (Exception e) {
}
Whyen我做client.execute(HTTPGET)響應HTTP/1.1 400錯誤的請求。爲什麼? 在我的代碼中進行身份驗證是否正確?
它看起來很好:)我的第一個問題是爲什麼不使用:http://hc.apache.org/httpclient-3.x/authentication.html?至於你的問題,我會首先嚐試通過普通的http,並嘗試用wireshark或其他東西截獲請求,並查看服務器錯誤日誌中的線索。 – fatfredyy
爲您的評論!但是我沒有使用client.getParams(),因爲在Android HttpClient中沒有這個方法(也沒有類似的方法)。提琴手幫我解決這個問題! – Marco