如何在Android中发送POST数据
在Android开发中,与远程服务器交换数据是很常见的。一种常见的通信方法是通过 HTTP POST 请求。本文将指导您完成将 POST 数据发送到 PHP 脚本并显示结果的过程。
Android API 级别兼容性
提供的代码示例适用于 Android 6.0及以上。对于运行 6.0 之前版本的 Android 设备,提供了更新的答案。
使用 AsyncTask
public class CallAPI extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... params) { String urlString = params[0]; String data = params[1]; try { 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(); } catch (Exception e) { System.out.println(e.getMessage()); } return null; } }
使用 Apache Http 客户端(已过时)
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 (Exception e) { // TODO Auto-generated catch block } }
注意: Apache Http 客户端解决方案已过时,仅适用于 5.1 以下的 Android 设备。对于 Android 6.0 及更高版本,请使用第一个响应中提供的更新的代码示例。
以上是如何在 Android 中使用 AsyncTask 和旧方法发送 POST 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!