在 Android 中发送 POST 数据:综合指南
简介:
与交互时Android 应用程序的 Web 服务经常需要发送带有数据负载的 POST 请求。 POST 请求允许开发人员将复杂的数据传递到服务器端脚本进行处理并返回结果。
Android 特定注意事项:
与其他编程语言不同,Android由于其多线程架构,需要特别考虑网络操作。为了高效地执行网络操作,必须使用异步任务来避免阻塞 UI 线程。
在 Android 中使用 HTTP POST:
发送有两种主要方法在 Android 中发布数据:
1. HttpClient 方法(已弃用):
旧版 HttpClient 方法使用 Apache HttpClient 库,该库包含在旧版本的 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. HttpURLConnection 方法:
HttpURLConnection 方法是在最近的 Android 版本中发送 POST 数据的推荐方法。它更轻量级,更适合异步任务。
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(); } }
在这两种方法中,POST 数据通常使用键值对进行格式化并以文本/纯文本或应用程序/x-www-form-urlencoded
结论:
POST 请求是 Android 应用程序中与 Web 服务交互的关键技术。通过利用适当的方法,开发人员可以有效地将数据发送到服务器端脚本并检索所需的结果。
以上是如何在 Android 应用程序中发送 POST 数据:HttpClient 和 HttpURLConnection 指南?的详细内容。更多信息请关注PHP中文网其他相关文章!