下面是試圖發佈到本地服務器上的PHP腳本的代碼片段。我將數據傳回服務器的MySQL表,由於數據量非常小,我想我會使用HttpClient將數據嵌入到URL參數中。然而,即使我從服務器收到的響應是OK(HTTP代碼= 200),很明顯服務器端PHP腳本沒有正確格式化數據(對MySQL表沒有任何影響)。然而,當我手動在瀏覽器中輸入網址+ ARGS像這樣:如何查看從httppost發送的字符串?
http://10.0.0.13/jobs_returndata_test.php?jobnum=189193&pnum=3&entime=13:00&extime=14:00
例如,一切工作正常(的PHP腳本正確地寫入到MySQL表)。
我的問題:有沒有一種方法可以實際查看HttpClient發送的內容? (即,HttpPost對象的整個.toString內容?)。下面是Android的側片段:
// Create a new HttpClient and Post Header, send data as args to PHP file
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.0.13/jobs_returndata.php");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("jobnum",convertSimple(jobNum)));
nameValuePairs.add(new BasicNameValuePair("pnum",convertSimple(rowNum)));
nameValuePairs.add(new BasicNameValuePair("entime",enteredInTime));
nameValuePairs.add(new BasicNameValuePair("extime",enteredOutTime));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Log.i("HTTP Post", "Execute Post sending jobnum="+ convertSimple(jobNum) +
"&pnum="+ convertSimple(rowNum) + "&entime=" + enteredInTime
+ "&extime=" + enteredOutTime);
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
Log.i("HTTP Post", "Response from server = " + response.getStatusLine().getReasonPhrase() + " Code = " + convertSimple(response.getStatusLine().getStatusCode()));
} catch (ClientProtocolException e) {
Log.e("HTTP Post", "Protocol error = " + e.toString());
} catch (IOException e) {
Log.e("HTTP Post", "IO error = " + e.toString());
}
我的服務器端的PHP文件是:
?php
$jobnum=$_GET['jobnum'];
//echo "jobnum = $jobnum <br />";
$pnum=$_GET['pnum'];
//echo "pnum = $pnum <br />";
$entime=$_GET['entime'];
//echo "entime = $entime <br />";
$extime=$_GET['extime'];
//echo "extime = $extime <br />";
$dbh=mysql_connect ("localhost", "Steve", "pluggin");
mysql_select_db ("DriverJobs");
$result = mysql_query("UPDATE jobs SET EntryTime = '$entime' WHERE JobNumber = '$jobnum' AND PointNum = '$pnum' ");
$result = mysql_query("UPDATE jobs SET ExitTime = '$extime' WHERE JobNumber = '$jobnum' AND PointNum = '$pnum' ") ;
//echo "done <br />";
?>
的相關章節中的logcat:
06-22 13:33: 11.341:I/HTTP Post(27788):執行發送後 jobnum = 189193 & pnum = 3 & entime = 9:00 & extime = 9:05 06-22 13:33:11.581: I/HTTP投遞(27788):從服務器= OK代碼= 200
權限響應良好(在INTERNET清單文件,併爲PHP文件,的Apache2是上並運行時,API = 8,使用Eclipse和Android模擬器)。 convertSimple()是一個2班輪,返回int原語的String等價物。
在此感謝提前看!
使用嗅探器(Wireshark)是我首先想到的。 – nhahtdh