我正在我的本地機器上運行tomcat servlet,並且使用向servlet發出發佈請求的應用程序運行Android模擬器。 POST的代碼如下(沒有例外等):通過android模擬器發送HTTP POST請求不起作用
String strUrl = "http://10.0.2.2:8080/DeviceDiscoveryServer/server/devices/";
Device device = Device.getUniqueInstance();
urlParameters += URLEncoder.encode("user", "UTF-8") + "=" + URLEncoder.encode(device.getUser(), "UTF-8");
urlParameters += "&" + URLEncoder.encode("port", "UTF-8") + "=" + URLEncoder.encode(new Integer(Device.PORT).toString(), "UTF-8");
urlParameters += "&" + URLEncoder.encode("address", "UTF-8") + "=" + URLEncoder.encode(device.getAddress().getHostAddress(), "UTF-8");
URL url = new URL(strUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream());
wr.write(urlParameters);
wr.flush();
wr.close();
無論何時執行此代碼,都不會調用該servlet。但是,如果我將請求的類型更改爲「GET」,並且不向輸出流寫入任何內容,則會調用該servlet並且一切正常。我只是沒有正確地開展POST或有其他一些錯誤?
你應該將檢查你的servlet代碼。它應該接受POST請求。 –
這個servlet的工作原理。看到下面,我找到了一個可行的解決方案。我不知道爲什麼。 –