Senden von POST-Daten in Android
POST-Anfragen werden verwendet, um Daten an einen Server zu senden, um eine Ressource zu erstellen oder zu aktualisieren, normalerweise in die Form eines Webformulars. In diesem Fall besteht die Aufgabe darin, POST-Daten an ein PHP-Skript auf einem Server zu senden und die Ergebnisse anzuzeigen.
Lösung (aktualisiert für Android 6.0):
Die Der empfohlene Ansatz ist die Verwendung der HttpURLConnection-Klasse. Hier ist ein Java-Snippet, das zeigt, wie POST-Daten gesendet werden:
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; } }
Originallösung (veraltet für Android 6.0):
Vor Android 6.0 die Apache HttpClient-Bibliothek könnte für HTTP-Post verwendet werden Anfragen:
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 } }
Referenzen:
Das obige ist der detaillierte Inhalt vonWie sende ich POST-Daten in Android mit HttpURLConnection?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!