2015-06-20 3 views
2

Я пытаюсь отправить HTTP POST-запрос на URL-адрес, используя HttpsUrlConnection. вот что я пытаюсь сделать:Не удается переключить метод 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() не выполняет запрос.

Замена вашей последней примерки поймать блок со следующим должен послать запрос POST:

try { 
    urlConnection.connect(); // open the connection 
    urlConnection.getContent(); // send prepared request 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
Смежные вопросы