Heim >Backend-Entwicklung >PHP-Tutorial >So senden Sie POST-Daten in Android: AsyncTask vs. moderne Methoden?

So senden Sie POST-Daten in Android: AsyncTask vs. moderne Methoden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-31 13:19:11757Durchsuche

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

So senden Sie POST-Daten in Android

Bei der Entwicklung für Android ist es wichtig zu wissen, wie POST-Daten an Remote-Server gesendet werden. Dieser Artikel bietet eine umfassende Anleitung, wie Sie dies sowohl mit der veralteten AsyncTask als auch mit einem moderneren Ansatz erreichen können.

Veraltete AsyncTask-Methode

Der folgende Codeausschnitt zeigt, wie das geht Senden Sie POST-Daten mit der AsyncTask-Klasse:

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());
        }
    }
}

Aktualisierte Methode für 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
    }
}

Das obige ist der detaillierte Inhalt vonSo senden Sie POST-Daten in Android: AsyncTask vs. moderne Methoden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn