2017-03-29 30 views
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();發生。

回答

0

也許你正在回收的連接

嘗試連接

+0

我之前已經試過這之前加入urlConnection.setRequestProperty("Connection", "close");和它給了我同樣的錯誤。 – Tuco

+0

在這之前還有其他的HTTP調用嗎?如果是這樣,你需要確保在你使用這個連接之前關閉連接 –

+0

不,這是唯一的HTTP調用,這是在我的'LoginActivity'裏面,我有一個從'AsyncTask'擴展的'UserLoginTask',這裏我發出了HTTP POST請求,這就是我所有的應用程序,我只是試圖讓登錄工作。 – Tuco

相關問題