2015-06-20 49 views
2

我試圖使用HttpsUrlConnection將HTTP POST請求發送到URL。這是我想要做的:無法將HttpURLConnection方法切換到POST

URL requestedUrl = null; 
HttpURLConnection urlConnection = null; 
try { 
      requestedUrl = new URL("https://www.test.local/login/"); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } 
     try { 
      urlConnection = (HttpsURLConnection) requestedUrl.openConnection(); 

      try { 
       urlConnection.setRequestMethod("POST"); 
      } catch (ProtocolException e1) { 
       e1.printStackTrace(); 
      } 
      urlConnection.setRequestProperty("Content-Type","application/json"); 
      urlConnection.setRequestProperty("Accept", "application/json"); 
      urlConnection.setDoInput(true); 
      urlConnection.setDoOutput(true); 
      urlConnection.setUseCaches(false); 
      urlConnection.setConnectTimeout(1500); 

     try { 
       urlConnection.connect(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

當調試我看到RequestMethod仍然是GET,任何想法爲什麼?

在此先感謝。

+0

'setDoOutput()'已經設置爲POST方法。你做了兩次。 – EJP

回答

3

使用給定的代碼,您應該無法在網絡跟蹤中看到任何請求。

在給定的片段中,您只能通過urlConnection.connect()打開連接,但不會執行實際的請求,如urlConnection.getContent()。單獨的connect()方法不執行請求。

與更換你的最後try-catch塊以下應該發送POST請求:

try { 
    urlConnection.connect(); // open the connection 
    urlConnection.getContent(); // send prepared request 
} catch (IOException e) { 
    e.printStackTrace(); 
}