Cara Menghantar Data POST dalam Android
Apabila membangun untuk Android, adalah penting untuk mengetahui cara menghantar data POST ke pelayan jauh. Artikel ini menyediakan panduan komprehensif tentang cara mencapai perkara ini menggunakan kedua-dua AsyncTask yang telah ditamatkan dan pendekatan yang lebih moden.
Kaedah AsyncTask yang ditamatkan
Coretan kod berikut menunjukkan cara untuk hantar data POST menggunakan kelas AsyncTask:
public class CallAPI extends AsyncTask<String, String, String> { public CallAPI() { //set context variables if required } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String... params) { String urlString = params[0]; // URL to call String data = params[1]; //data to post 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()); } } }
Kaedah Kemas Kini untuk Android 6.0
public void postData() { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("id", "12345")); nameValuePairs.add(new BasicNameValuePair("stringdata", "Hi")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block } }
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Data POST dalam Android: AsyncTask vs. Kaedah Moden?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!