我檢查了這個Post。但我不明白什麼是邏輯錯誤。我仍然收到這個錯誤。我試圖轉儲模擬器流量。但是我仍然不明白問題的癥結所在。HTTPURLConnection - 400錯誤請求
從流量轉儲中,這是Android向服務器發送的請求。你也可以看到反應:
GET /Authenticate/ HTTP/1.1
Authorization: Basic asdfasdfasdfas
Accept-Charset: UTF-8
Host: www.domain.com
User-Agent: Dalvik/1.4.0 (Linux; U; Android 2.3.3; sdk Build/GRI34)
Connection: Keep-Alive
Accept-Encoding: gzip
neQPˆ? 6 6 RT 4VRT 5 E (
» @ÍCl¦'
PÙ[ ˜ároP"8" neQPI " " RT 4VRT 5 E
¼ @ËVl¦'
PÙ[ ˜ároP"8«‹ HTTP/1.1 400 Bad Request
Date: Thu, 13 Sep 2012 04:47:42 GMT
Server: Apache/2.2.15 (CentOS)
Content-Length: 310
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.2.15 (CentOS) Server at www.domain.com Port 80</address>
</body></html>
neQPé¬ 6 6 RT 4VRT 5 E (
½ @ÍAl¦'
PÙ[ ™îároP"8 , neQPéË @ @ RT 5RT 4V E (çØ@ @³-
l¦'Ù[ Páro ™îP)E neQPéË @ @ RT 5RT 4V E (çÙ@ @³,
l¦'Ù[ Páro ™ïP)D neQPö「
© © RT 5RT 4V E ›k‹@ @¶Á
³ër,9Jr ‘Pÿÿ6B WRTE w [ * ¨«º[ 09-13 04:47:41.822 446:0x1c7 D/400 ]
text/html; charset=iso-8859-1Bad Request
我不知道那些額外的字符是什麼意思。但我試圖從中找出問題。
這是基本的代碼:
String credentials = username + ":" + password;
byte[] toencode = null;
try {
toencode = credentials.getBytes("UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
HttpURLConnection conn = null;
try {
//Utilities.isNetworkAvailable(context);
URL url = new URL(params[0]);
Log.d(params[0],"UR");
conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Authorization", "Basic " + Base64.encodeToString(toencode, Base64.DEFAULT));
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setRequestProperty("Host", "www.domain.com");
conn.setRequestMethod("GET");
conn.setDoOutput(true);
String data = conn.getInputStream().toString();
return data;
}
任何想法?
更新
我檢查網絡服務器日誌,看是否請求被擊中服務器,如果有一個與請求的任何問題。這是我從錯誤日誌中看到的:
[Thu Sep 13 10:05:24 2012] [error] [client 91.222.195.132] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /Authenticate/
[Thu Sep 13 23:11:57 2012] [error] [client 91.222.195.132] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /Authenticate/
[Thu Sep 13 23:12:03 2012] [error] [client 91.222.195.132] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /Authenticate/
但是,我正在設置請求的標頭屬性。
任何想法?
你的URL的價值是什麼? – Lucifer
其http://www.domain.com/Authenticate/ –