0
您好我有一個Android應用程序需要連接到API(當前正在本地運行)來驗證用戶,所以我試圖發送帶有JSON對象的POST請求作爲請求的身體,但每當我試圖登錄我得到以下錯誤:從Android設備發出請求時發生意外的狀態行
Unexpected status line: ��
java.net.ProtocolException: Unexpected status line: ��
這裏是我的代碼:
String API_URL = "http://10.0.2.2:8443/api/";
try {
URL url = new URL(API_URL);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/json");
urlConnection.connect();
JSONObject jsonObject = new JSONObject();
jsonObject.put("customerId", 1);
jsonObject.put("password" , mPassword);
jsonObject.put("username" , mEmail);
DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream());
wr.writeBytes(jsonObject.toString());
Log.d("REQUEST BODY", jsonObject.toString());
wr.flush();
wr.close();
int response = urlConnection.getResponseCode();
Log.d("RESPONSE", String.valueOf(response));
if(response == HttpURLConnection.HTTP_OK) {
InputStream bis = new BufferedInputStream(urlConnection.getInputStream());
return getStringFromInputStream(bis);
}
}
finally{
urlConnection.disconnect();
}
}
catch(Exception e) {
Log.e("ERROR", e.getMessage(), e);
return null;
}
誰能告訴我,我可能是做錯了?謝謝!
編輯
不知道這是否幫助,但這個問題似乎當我打電話urlConnection.getResponseCode();
發生。
我之前已經試過這之前加入
urlConnection.setRequestProperty("Connection", "close");
和它給了我同樣的錯誤。 – Tuco在這之前還有其他的HTTP調用嗎?如果是這樣,你需要確保在你使用這個連接之前關閉連接 –
不,這是唯一的HTTP調用,這是在我的'LoginActivity'裏面,我有一個從'AsyncTask'擴展的'UserLoginTask',這裏我發出了HTTP POST請求,這就是我所有的應用程序,我只是試圖讓登錄工作。 – Tuco