但是最近要用,所以就想到那不如直接將資料丟到網頁,由網頁幫我轉發資料。順便練一下最不熟悉的網頁語言…
不過建議先搞懂Post和Get,可以參考這篇『HTTP POST GET 本质区别详解』
HttpPost httpPost = new HttpPost("http://192.168.1.1/test.php");
List<NameValuePair> list = new ArrayList<NameValuePair>();
list.add(new BasicNameValuePair("Name", "Value"));
try {
httpPost.setEntity(new UrlEncodedFormEntity(list, HTTP.UTF_8));
HttpResponse httpResponse = new DefaultHttpClient()
.execute(httpPost);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
String result = EntityUtils.toString(httpResponse.getEntity());
return result;
}
} catch (UnsupportedEncodingException e) {
Log.i("UnsupportedEncodingException", e.toString());
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
Log.i("ClientProtocolException", e.toString());
} catch (IOException e) {
e.printStackTrace();
Log.i("IOException", e.toString());
}
<?php echo $_POST['account']; echo "12345"; ?>
這些程式碼主要是透過HttpPost去建立連結伺服器的位址
用Post傳遞是給資料值之外還要給名稱?不給的話可能分辨不出來到底是要給誰的
所以我們就必須建立一個清單,並且紀錄下每一個名稱對應的值
在設定HttpPost所要傳送的編碼及資料
使用HttpResponse來直接發送,發送完後可以取得一個狀態碼
不知道狀態碼的人可以參考『WIKIPEDIA的List of HTTP status codes 』,200就是成功的送出資料了
接著我們可以透過『EntityUtils.toString("Entity")的方式將回傳的訊息顯示出來,以利Debug
參考資料:
http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/NameValuePair.html
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
http://blog.csdn.net/gideal_wang/article/details/4316691
http://www.tutorialspoint.com/android/android_php_mysql.htm