Menghantar Data POST dalam Android
Permintaan POST digunakan untuk menghantar data ke pelayan untuk mencipta atau mengemas kini sumber, biasanya dalam bentuk borang web. Dalam kes ini, tugasnya adalah untuk menghantar data POST ke skrip PHP pada pelayan dan memaparkan hasilnya.
Penyelesaian (Dikemas kini untuk Android 6.0 ):
The pendekatan yang disyorkan ialah menggunakan kelas HttpURLConnection. Berikut ialah coretan Java yang menunjukkan cara menghantar data POST:
public class CallAPI extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... params) { String urlString = params[0]; String data = params[1]; OutputStream out = null; try { URL url = new URL(urlString); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); out = new BufferedOutputStream(urlConnection.getOutputStream()); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8")); writer.write(data); writer.flush(); writer.close(); out.close(); urlConnection.connect(); } catch (Exception e) { System.out.println(e.getMessage()); } return null; } }
Penyelesaian Asal (Lapuk untuk Android 6.0 ):
Sebelum Android 6.0, perpustakaan Apache HttpClient boleh digunakan untuk HTTP Post permintaan:
public void postData() { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("id", "12345")); nameValuePairs.add(new BasicNameValuePair("stringdata", "Hi")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); try { HttpResponse response = httpclient.execute(httppost); } catch (Exception e) { // Handle exceptions } }
Rujukan:
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Data POST dalam Android Menggunakan HttpURLConnection?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!