Maison >développement back-end >tutoriel php >Comment envoyer des données POST dans des applications Android : un guide sur HttpClient et HttpURLConnection ?
Envoi de données POST sous Android : un guide complet
Introduction :
Lors de l'interaction avec services Web à partir d'applications Android, il est souvent nécessaire d'envoyer des requêtes POST avec des charges utiles de données. Les requêtes POST permettent aux développeurs de transmettre des données complexes à un script côté serveur pour le traitement et le renvoi des résultats.
Considérations spécifiques à Android :
Contrairement à d'autres langages de programmation, Android a considérations spécifiques pour les opérations réseau en raison de son architecture multithread. Pour effectuer efficacement les opérations réseau, il est essentiel d'utiliser des tâches asynchrones pour éviter de bloquer le thread de l'interface utilisateur.
Utiliser HTTP POST sous Android :
Il existe deux approches principales pour envoyer POSTer des données sous Android :
1. Approche HttpClient (obsolète) :
L'ancienne approche HttpClient utilise la bibliothèque Apache HttpClient, qui est incluse dans les anciennes versions d'Android.
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)); httpclient.execute(httppost); }
2. Approche HttpURLConnection :
L'approche HttpURLConnection est la méthode recommandée pour envoyer des données POST dans les versions récentes d'Android. Il est plus léger et mieux adapté aux tâches asynchrones.
public class CallAPI extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... params) { String urlString = params[0]; String data = params[1]; URL url = new URL(urlString); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); OutputStream 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(); } }
Dans les deux approches, les données POST sont généralement formatées à l'aide de paires clé-valeur et envoyées sous forme de texte/plain ou application/x-www-form-urlencoded contenu.
Conclusion :
Les requêtes POST sont une technique cruciale pour interagir avec les services Web dans les applications Android. En tirant parti de l'approche appropriée, les développeurs peuvent envoyer efficacement des données aux scripts côté serveur et récupérer les résultats souhaités.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!