Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menghantar Data POST dalam Android: AsyncTask vs. Kaedah Moden?

Bagaimana untuk Menghantar Data POST dalam Android: AsyncTask vs. Kaedah Moden?

Barbara Streisand
Barbara Streisandasal
2024-12-31 13:19:11696semak imbas

How to Send POST Data in Android: AsyncTask vs. Modern Methods?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn