0

httpポストを使用してWebサイトにデータを投稿するために使用するAndroidアプリケーションがありますが、Webサイトにデータを投稿していません。

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

しかし、この post メソッドは何もしません。何か不足していますか?何か追加する必要がありますか?

4

2 に答える 2

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 に答える
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 に答える