通常,當我收到POST數據時,它將從HTML表單發送,並且參數具有名稱,即<input type="text" name="yourname" />
,然後我可以使用php echo $_POST['yourname'];
接收並打印這些數據。如何使用HTTP POST從Java應用程序發送XML並在服務器上使用PHP進行打印?
現在我正在實現一個Java應用程序,該應用程序應該以XML格式將數據發佈到指定的URL。我寫了一個簡單的PHP頁面,我可以嘗試POST數據,但數據不打印。由於沒有任何參數的名稱,我不知道我應該如何使用PHP打印它。
我試圖發送簡單的XML到服務器,服務器應迴應MESSAGE: <XML>
,但它只響應MESSAGE:
。我究竟做錯了什麼?
這裏是在服務器上我的PHP代碼:
<?php
echo 'MESSAGE:';
print_r($_POST); ?>
這裏是在客戶端上我的Java代碼:
String xmlRequestStatus = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
<test></test>";
String contentType = "text/xml";
String charset = "ISO-8859-1";
String request = null;
try {
request = String.format("%s",
URLEncoder.encode(xmlRequestStatus, charset));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
URL url = null;
URLConnection connection = null;
OutputStream output = null;
InputStream response = null;
try {
url = new URL("http://skogsfrisk.se/test/");
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
connection = url.openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Accept-Charset", charset);
connection.setRequestProperty("Content-Type", contentType);
output = connection.getOutputStream();
output.write(request.getBytes("ISO-8859-1"));
if(output != null) try { output.close(); } catch (IOException e) {}
response = connection.getInputStream();
...
} catch (IOException e) {
e.printStackTrace();
}
@Jonas您是否嘗試通過我上面發佈的鏈接閱讀手冊頁? – 2010-06-29 18:25:13
是的,但我做了另一個錯誤,現在它工作正常,謝謝。 – Jonas 2010-06-29 18:47:40
謝謝,它可以很好的使用這個PHP:'<?php echo'MESSAGE:'。$ HTTP_RAW_POST_DATA; ?>' – Jonas 2010-06-29 18:49:55