我有一个Android应用程序,我使用http帖子将数据发布到网站,但它没有向网站发布任何数据。
在我的Android代码中:
postParameters.add(new BasicNameValuePair("latitude", Double.toString(latitude)));
postParameters.add(new BasicNameValuePair("longitude", Double.toString(longitude)));
response = CustomHttpClient.executeHttpPost("url", postParameters);
在executeHttpPost方法
中public static String executeHttpPost(String url, ArrayList postParameters)
throws Exception {
BufferedReader in = null;
try {
HttpClient client = getHttpClient();
HttpPost request = new HttpPost(url);
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(
postParameters);
request.setEntity(formEntity);
HttpResponse response = client.execute(request);
in = new BufferedReader(new InputStreamReader(response.getEntity()
.getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
String result = sb.toString();
return result;
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
这是php源代码
$lat=$_POST['latitude'];
$long=$_POST['longitude'];
mysql_connect('localhost','welcome','Welcome123') or die('conn error');
mysql_select_db('es') or die('select error');
$query = "insert into GEO_LOC (GEO_LOC_LAT,GEO_LOC_LONG) values ($lat,$long)";
$result = mysql_query($query);
if($result)
{
echo 1;
}
else echo "Database Error";
?>
但是这个帖子方法没有做任何事情。我错过了什么吗?我还需要添加其他内容吗?
答案 0 :(得分:0)
试试这个,
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(ADD URL HERE);
try {
List<NameValuePair> name = new ArrayList<NameValuePair>();
name.add(new BasicNameValuePair("latitude", Double.toString(latitude)));
name.add(new BasicNameValuePair("longitude", Double.toString(longitude)));
post.setEntity(new UrlEncodedFormEntity(name));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line = "";
StringBuilder sb = new StringBuilder();
while ((line = rd.readLine()) != null) {
sb.append(line + "\n");
}
} catch (Exception e) {
}
答案 1 :(得分:0)
检查以下代码:
public static ArrayList<NameValuePair> arrayPost = new ArrayList<NameValuePair>();
如果数组大小为0则在上面的数组中添加参数,
if (arrayPost.size() <= 0) {
arrayPost.add(new BasicNameValuePair("test", "test"));
}
public static String Call_Http_URL_PostMethod(String url)
throws ClientProtocolException, IOException {
String is = null;
try {
if (arrayPost.size() <= 0) {
arrayPost.add(new BasicNameValuePair("test", "test"));
}
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(arrayPost, HTTP.UTF_8));
HttpResponse responce = httpclient.execute(httppost);
HttpEntity entity = responce.getEntity();
is = EntityUtils.toString(entity);
Log.e("post responce----->", "" + is);
} catch (Exception e) {
Log.d("post responce error ----->", "" + e.getMessage().toString());
is = null;
}
return is;
}
更改您的PHP代码,如下所示(这仅用于测试)
if($result)
{
echo json_encode("result"=array("sucsess"););
}
echo json_encode("result"=array("Database Error"));