編輯:這是什麼在我的網站日誌中顯示 xx.xx.xxx.xx - [27/Jan/2012:17:42:24 -0500]「POST/dir /addData2.php HTTP/1.1" 200 - www.mywebsites.com 「 - 」 的 「Java/1.7.0」 「 - 」PHP收到來自Java的POST請求
我主持我的網站在1 & 1,我想有blank.php
頁應該接受POST請求並將其上傳到我的數據庫。我認爲我正確地發送我的POST,並且不知何故我不能在我的網站上正確處理它。因爲沒有任何內容插入到我的數據庫中。響應的內容長度爲0,但即使我發送的字符串長度不變,也不會改變。另一種選擇是主持人不允許我做遠程發佈請求(仍在等待回覆)。
我從Java應用程序發送POST請求是這樣的:
URL url = new URL("www.mywebsite.com/blank.php");
HttpURLConnection request = (HttpURLConnection)url.openConnection();
request.setRequestProperty("Content-type","application/x-www-form-urlencoded");
request.setRequestMethod("POST");
OutputStreamWriter post = new OutputStreamWriter(request.getOutputStream());
String data = URLEncoder.encode("account", "UTF-8") + "=" + URLEncoder.encode(message[0], "UTF-8");
data += "&" + URLEncoder.encode("message", "UTF-8") + "=" + URLEncoder.encode(message[2], "UTF-8");
data += "&" + URLEncoder.encode("type", "UTF-8") + "=" + URLEncoder.encode(message[0], "UTF-8");
post.write(data);
post.flush();
/*
/String example
/account=103&message=Feller+1391.88+0&type=103
*/
來自服務器的響應是:
null=[HTTP/1.1 200 OK]
Date=[Fri, 27 Jan 2012 21:59:10 GMT]
Content-Length=[0]
Keep-Alive=[timeout=2, max=200]
Connection=[Keep-Alive]
Content-Type=[text/html]
Server=[Apache]
X-Powered-By=[PHP/5.2.17]
我的網頁上有這個基本的PHP代碼(現在,將改善/稍後檢查內容)
$link = mysql_connect($hostname, $username, $password);
$db_selected = mysql_select_db($database, $link);
$query = "INSERT INTO newData(account, message, type) VALUES('$_POST[account]', '$_POST[message]', '$_POST[type]')";
mysql_query($query) || die();
我想指出我沒有私人服務器,並且稍後我可能會使用http://hc.apache.org/httpcomponents-core-ga/examples.html。現在我只想從我的Java應用程序發送一個字符串,用PHP接收並插入到MySQL數據庫。
你的問題含糊不清。你的具體問題是什麼?響應內容長度爲0?但是你沒有顯示任何寫入響應的PHP代碼? – BalusC 2012-01-27 22:52:10
好吧,我的問題是比較我的代碼和代碼示例一切看起來都一樣,但仍然在我的數據庫上沒有插入任何內容。不知道你寫的迴應是什麼意思。我的想法是單向通信,應用到服務器(發送自動響應,但我不認爲我必須回覆它)。我無法寫出我自己的回覆,因爲它不是我自己的服務器(共享主機) – Juan 2012-01-27 23:07:51
請盡一切可能查看日誌。訪問日誌對於解決網站問題非常重要。 – paulsm4 2012-01-27 23:13:13