2015-10-23 50 views
1

我不知道爲什麼,但我發現,當我做一個GET請求的響應POST,這裏是我的方法:POST響應

public String performGetBrandCall(String requestURL) { 

    URL url; 
    String response = ""; 
    try { 
     url = new URL(requestURL); 
     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setRequestMethod("GET"); 
     conn.setRequestProperty("Authorization", "Bearer " + MainActivity.TOKEN); 
     conn.setDoInput(true); 
     conn.setDoOutput(true); 

     int responseCode=conn.getResponseCode(); 
     Log.d(TAG, "Response Code: " + responseCode); 


     if (responseCode == HttpsURLConnection.HTTP_OK || responseCode == HttpsURLConnection.HTTP_CREATED) { 
      String line; 
      BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream())); 
      while ((line=br.readLine()) != null) { 
       response+=line; 
      } 
     } else { 
      if (responseCode >= 400 && responseCode < 500){ 
       String line; 
       BufferedReader br=new BufferedReader(new InputStreamReader(conn.getErrorStream())); 
       while ((line=br.readLine()) != null) { 
        response+=line; 
       } 
      } else { 
       response=""; 
      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return response; 
} 

我加入一個通過使用setRequestProperty頭,是唯一的「參數」我設置爲請求,但我收到後迴應,我不知道爲什麼。有什麼建議麼?

回答

1

據Android開發者指南:

SetDoOutput設置標誌,表示此URLConnection是否允許輸出。建立連接後不能設置。

只有在您使用POST請求時才需要調用此方法...如果您正在執行GET請求並且SetDoOutput爲true,那麼您的請求將是POST請求。

我只能刪除線,現在我得到我的GET響應:

public String performGetCall(String requestURL) { 

    URL url; 
    String response = ""; 
    try { 
     url = new URL(requestURL); 
     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setRequestMethod("GET"); 
     conn.setRequestProperty("Authorization", "Bearer "+ MainActivity.TOKEN); 
     conn.setDoInput(true); 

     int responseCode=conn.getResponseCode(); 
     Log.d(TAG, "Response Code: "+responseCode); 

     if (responseCode == HttpsURLConnection.HTTP_OK || responseCode == HttpsURLConnection.HTTP_CREATED) { 
      String line; 
      BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream())); 
      while ((line=br.readLine()) != null) { 
       response+=line; 
      } 
     } else { 
      if (responseCode >= 400 && responseCode < 500){ 
       String line; 
       BufferedReader br=new BufferedReader(new InputStreamReader(conn.getErrorStream())); 
       while ((line=br.readLine()) != null) { 
        response+=line; 
       } 
      } else { 
       response=""; 
      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return response; 
}