2012-07-13 51 views
0

我是新來的PHP。我從安卓as--JSON接收來自android的數據

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中接收數據的

<?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字段。

我該如何解決這個問題?提前致謝!

回答

0

嗨它很容易,如果你可以使用鍵值對這個 我做了這個 一個完整的教程你可以看到它在這裏

Part1

Part2

0

你應該提供的值查詢:

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