gpt4 book ai didi

java - 在 Android 中发送 POST 数据

转载 作者:bug小助手 更新时间:2023-10-28 10:39:00 25 4
gpt4 key购买 nike

我对 PHP、JavaScript 和许多其他脚本语言有经验,但对 Java 或 Android 没有太多经验。

我正在寻找一种将 POST 数据发送到 PHP 脚本并显示结果的方法。

最佳答案

注意(2020 年 10 月):以下答案中使用的 AsyncTask 在 Android API 级别 30 中已被弃用。请参阅 Official documentationthis blog post获取更多更新示例

更新(2017 年 6 月)答案,适用于 Android 6.0+。感谢 @Rohit Suthar , @Tamis Bolvari@sudhiskr发表评论。

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

引用资料:

原始答案(2010 年 5 月)

注意:此解决方案已过时。它仅适用于最高 5.1 的 Android 设备。 Android 6.0 及更高版本不包括此答案中使用的 Apache http 客户端。

Apache Commons 的 Http 客户端是可行的方法。它已经包含在android中。下面是一个简单的例子,说明如何使用它进行 HTTP Post。

public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");

try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "Hi"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);

} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}

关于java - 在 Android 中发送 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2938502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com