我不确定问题是PHP或Android应用程序,但我发送一个带有数据的HttpPost只得到???插入我的数据库表。我在PHP中做了以下内容:
$db_con = mysql_connect($db_host,$db_uid,$db_pass) or die('could not connect');
mysql_query("SET NAMES utf8;");
mysql_query("SET CHARACTER_SET utf8;");
然后在android中我做了以下事情:
String postReceiverUrl = "http://hwy.com/displaypost.php";
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "utf-8");
// HttpClient
HttpClient httpClient = new DefaultHttpClient(params);
// post header
HttpPost httpPost = new HttpPost(postReceiverUrl);
// add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
//All user input
EditText shopName = (EditText)findViewById(R.id.shopName);
EditText shopLocation = (EditText)findViewById(R.id.shopLocation);
EditText shopCity = (EditText)findViewById(R.id.shopCity);
EditText discountRate = (EditText)findViewById(R.id.shopDiscount);
EditText discountDuration = (EditText)findViewById(R.id.shopDiscountDuration);
nameValuePairs.add(new BasicNameValuePair("name", shopName.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("location", shopLocation.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("city", shopCity.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("rate", discountRate.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("duration", discountDuration.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("category", shopCategory));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// execute HTTP post request
HttpResponse response = httpClient.execute(httpPost);
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
String responseStr = EntityUtils.toString(resEntity).trim();
Log.v("", "Response: " + responseStr);
// you can add an if statement here and do other actions based on the response
}
我在logcat中收到的回复是:
07-20 10:52:56.996: V/(7749): Response: Array
07-20 10:52:56.996: V/(7749): (
07-20 10:52:56.996: V/(7749): [name] => ???????
07-20 10:52:56.996: V/(7749): [location] => ???????
07-20 10:52:56.996: V/(7749): [city] => ???????
07-20 10:52:56.996: V/(7749): [rate] => ???????
07-20 10:52:56.996: V/(7749): [duration] => ??????
07-20 10:52:56.996: V/(7749): [category] => ????? ? ?????????
07-20 10:52:56.996: V/(7749): )
知道为什么会分手吗?
提前致谢
答案 0 :(得分:0)
经过长时间的研究和实验,找到了答案。就是这样:
httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
接下来是:
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));
这就是它的全部!希望有一天能帮到某人