在Android中发送POST数据 [英] Sending POST data in Android
问题描述
我经历过 PHP
, JavaScript
和许多其他脚本语言,但我不有许多经验 Java
或 Android
。
I'm experienced with PHP
, JavaScript
and a lot of other scripting languages, but I don't have a lot of experience with Java
or Android
.
我正在寻找一种方法来向 PHP
脚本发送 POST 数据并显示结果。
I'm looking for a way to send POST data to a PHP
script and display the result.
推荐答案
Updated Answer which works on Android 6.0
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 resultToDisplay = "";
InputStream in = null;
try {
URL url = new URL(urlString);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
in = new BufferedInputStream(urlConnection.getInputStream());
} catch (Exception e) {
System.out.println(e.getMessage());
return e.getMessage();
}
try {
resultToDisplay = IOUtils.toString(in, "UTF-8");
//to [convert][1] byte stream to a string
}
catch (IOException e) {
e.printStackTrace();
}
return resultToDisplay;
}
@Override
protected void onPostExecute(String result) {
//Update the UI
}
旧回答
Older Answer
注意:此解决方案已过时。它只适用于最高5.1的Android设备。 Android 6.0及更高版本不包括在此答案中使用的Apache http客户端。
Note: This solution is outdated. It only works on Android devices up to 5.1. Android 6.0 and above do not include the Apache http client used in this answer.
Apache Commons的Http客户端是要走的路。它已经包括在android。下面是一个简单的例子,说明如何使用HTTP Post。
Http Client from Apache Commons is the way to go. It is already included in android. Here's a simple example of how to do HTTP Post using it.
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
}
}
这篇关于在Android中发送POST数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!