Php android HttpPost中的JSON_POST为空

Php android HttpPost中的JSON_POST为空,php,android,json,http-post,Php,Android,Json,Http Post,我不明白我的帖子是空的 我创建了一个JSONOBJECT并将其传递给HTTPPost 像这样: HttpPost post = new HttpPost(URL); StringEntity se = new StringEntity(json.toString()); se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "

我不明白我的帖子是空的

我创建了一个JSONOBJECT并将其传递给HTTPPost 像这样:

   HttpPost post = new HttpPost(URL);

                StringEntity se = new StringEntity(json.toString());
                se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,
                        "application/json"));
                post.setEntity(se);
                response = client.execute(post);
但它显示为一个空数组

这是完整的代码

创建我的JSON对象(可以调试并填充它

public static final JSONObject GetJSONObject(Customer customer) {

        try {
            JSONObject values = new JSONObject();
            values.put(Customer.KEY_NAME, customer._name); // Contact Name
            values.put(Customer.KEY_PH_NO, customer._phone); // Contact Phone
            values.put(Customer.KEY_EMAIL, customer._email);
            values.put(Customer.KEY_UUID, customer._UUID);
            values.put(Customer.KEY_GEOUUID, customer._geoUUID);
            values.put(Customer.KEY_SALESREPUUID, customer._salesRepUUID);
            values.put(Customer.KEY_CUST_LAST_UPDATE, customer.last_update);
            values.put(Customer.KEY_CUST_NOTES, customer._notes);
            return values;
        } catch (JSONException e) {
            Log.d("ERROR", e.getMessage());
            System.exit(1);
        }
        return null;
    }
启动发送线程

        ma.ShowToastMsg("Updating Contract To mySQL" + customer._name);
    mh.sendJSONTHREAD("http://.php",
            GetJSONObject(customer));
public void sendJSONTHREAD(final String URL, final JSONObject json) {
    new Thread(new Runnable() {
        public void run() {
            sendJson(URL, json);
        }
    }).start();
}
发送它

public void sendJson(final String URL, final JSONObject json) {
    Looper.prepare(); // For Preparing Message Pool for the child Thread
    HttpClient client = new DefaultHttpClient();
    HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); // Timeout
                                                                            // Limit
    HttpResponse response;

    try {
        HttpPost post = new HttpPost(URL);

        StringEntity se = new StringEntity(json.toString());
        se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,
                "application/json"));
        post.setEntity(se);
        response = client.execute(post);


        /* Checking response */
        if (response != null) {
            Log.d("RESPONSE", EntityUtils.toString(response.getEntity()));

            //InputStream in = response.getEntity().getContent(); // Get the
                                                                // data in
                                                                // the
                                                                // entity
            //Log.d("HTTPPOST", in.toString());
        }

    } catch (Exception e) {
        e.printStackTrace();
        // createDialog("Error", "Cannot Estabilish Connection");
    }

    Looper.loop(); // Loop in the message queue

}
还有PHP的一面

include("settings.php");

mysql_connect($loginURL,$username,$password);
@mysql_select_db($database) or die("-9");

echo var_dump($_POST);

$varname = mysql_real_escape_string(strip_tags($_POST['name']));
$varemail = mysql_real_escape_string(strip_tags($_POST['email']));
$varphone = mysql_real_escape_string(strip_tags($_POST['phone']));
$varUUID = mysql_real_escape_string(strip_tags($_POST['UUID']));
$vargeopointUUID = $_POST['geopointUUID'];

echo var_dump($_POST);


echo var_dump($_POST)-返回数组(0){}

POST不希望传递JSON,而是如下所示的名称/值对:

List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("key1", "value1"));
params.add(new BasicNameValuePair("key2", "value2"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

POST不希望传递JSON,而是希望传递名称/值对,如下所示:

List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("key1", "value1"));
params.add(new BasicNameValuePair("key2", "value2"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

不明白-这里有很多教程和问题,人们成功地使用了(u POSTI checked HTTP(u RAW)POST(u POST)数据,我的所有数据都在里面-但是我无法填写变量-如果我使用json(u RAW)解码((HTTP(u RAW)u POST(u DATA['name')),它们返回为{Try
print(json(u RAW)u POST)
查看它的解析是否正确——或者如上所述发送URLEncodedFormEntity以避免整个混乱。如果您只是发送键/值对而没有嵌套,那么就没有理由用json发布数据。-这看起来打印正确…每个项都像这样打印到屏幕上-[UUID]=>d3a15359-bc45-417d-b228-28dc561df773那么我不能把它分配给这样一个变量吗???$varemail=json_decode($HTTP_RAW_POST_DATA['email']);你应该先解码,然后访问--
json_decode($HTTP_RAW_POST_DATA)['email']
不明白-这里有很多教程和问题,有人成功地使用了{u POSTI检查过的HTTP_RAW_POST_数据,我的所有数据都在里面-但是我无法填写变量-如果我使用json_解码('HTTP_RAW_POST_DATA['name'),它们返回为{Try
print_r(json_decode('HTTP_RAW_POST_DATA))
查看它的解析是否正确——或者如上所述发送URLEncodedFormEntity以避免整个混乱。如果您只是发送键/值对而没有嵌套,那么就没有理由用json发布数据。-这看起来打印正确…每个项都像这样打印到屏幕上-[UUID]=>d3a15359-bc45-417d-b228-28dc561df773那么我就不能把它分配给这样一个变量吗???$varemail=json_decode($HTTP_RAW_POST_DATA['email']);你应该先解码,然后访问--
json_decode($HTTP_RAW_POST_DATA)['email']