JSON从android接收数据

时间:2012-07-13 16:59:56

标签: php android json http post

我是php的新手。我将数据从android发布到php服务器 -

JSONObject jsonObject = new JSONObject();
try
{
    jsonObject.put("name", "john");
    String url = "http://10.0.2.2/WebService/submitname.php";
    HttpClient client = new DefaultHttpClient();
    HttpPost httpPost = new HttpPost(url);
    httpPost.setHeader("json", jsonObject.toString());
    StringEntity se = null;
    se = new StringEntity(jsonObject.toString());
    se.setContentEncoding(new BasicHeader(
    HTTP.CONTENT_TYPE, "application/json"));
    httpPost.setEntity(se);
    HttpResponse response = client.execute(httpPost);
    int i = response.getStatusLine().getStatusCode();
    Log.v("status", "" + i);
} catch (Exception e)
{
    e.printStackTrace();
} 

在php中接收数据

<?php
 mysql_connect("localhost","root","");
 mysql_select_db("my db");
 $var = json_decode($_POST['HTTP_JSON']);
 $service = $var->{'name'};
 mysql_query("INSERT INTO name_table(`_id`, `retrived_name`, `cat`, `is_valid_name`) VALUES (1547, '$service','$var',true);");
 echo  $var;
?>

在服务器端没有任何东西。但是,php查询执行正确,因为在数据库中获得200响应和新行但空retrived_namecat字段。

我该如何解决这个问题?提前谢谢!

2 个答案:

答案 0 :(得分:0)

如果您可以使用键值对,那么很容易 我做了一个完整的教程 你可以在这里看到它

Part1

Part2

答案 1 :(得分:0)

您应该在Query:

中提供值
<?php
    mysql_connect("localhost","root","");
    mysql_select_db("my db");
    $var = json_decode($_POST['HTTP_JSON']);
    $service = $var->{'name'};
    $name = $_POST['name'];
    mysql_query("INSERT INTO name_table(`_id`, `retrived_name`, `cat`, `is_valid_name`) VALUES (1547, '$service','$name',true);");
    echo  $var;
?>