0

我有一个 android 应用程序,我使用它使用 http post 将数据发布到网站,但它没有将任何数据发布到网站。

在我的安卓代码中:

                   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";
?>

但是这个 post 方法并没有做任何事情。我错过了什么吗?我需要添加任何额外的东西吗?

4

2 回答 2

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"));
于 2013-02-26T13:41:23.090 回答
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) {

    }
于 2013-02-26T13:29:09.320 回答