但是最近要用,所以就想到那不如直接將資料丟到網頁,由網頁幫我轉發資料。順便練一下最不熟悉的網頁語言…
不過建議先搞懂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