3

我尝试使用此 android 代码将 json 对象发送到我的网站

HttpPost httppost = new HttpPost(url);

JSONObject j = new JSONObject();
    j.put("name","name ");

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        String format = s.format(new Date()); 
    nameValuePairs.add(new BasicNameValuePair("msg",j.toString() ));

       httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                               httpclient.execute(httppost);

而这个php代码

<?php

$msg=$_POST["msg"]; 

$filename="androidmessages.html";

file_put_contents($filename,$msg."<br />",FILE_APPEND);

$androidmessages=file_get_contents($filename);

echo $androidmessages;
?>

它会告诉我 {"name":"name"} 但如果我使用

httppost.setHeader( "Content-Type", "application/json" );

它什么也不会显示。我之前没有关于 json object post 的经验,但我认为出了点问题。我想将一些用户信息发送到我的网站并在网页中显示它,你能告诉我我需要改变什么来克服这个问题谢谢

4

2 回答 2

2

终于我得到了答案

$msg=json_decode(file_get_contents('php://input'), true); 

$filename="androidmessages_json.html";

file_put_contents($filename,$msg['name']."<br />",FILE_APPEND); 

$androidmessages=file_get_contents($filename);

echo $androidmessages;
于 2013-07-29T04:41:44.373 回答
1

这取决于您希望如何将数据传递给您的 PHP 脚本。

如果您想在一个变量中获取 JSON 作为字符串(可能还有其他变量),那么您不应该使用内容类型“application/json”。如果您只想发布没有任何变量的 JSON,您可以改为执行以下操作:

HttpPost httppost = new HttpPost(url);
JSONObject j = new JSONObject();
j.put("name","name ");
httppost.setEntity(new StringEntity(j.toString());
httpclient.execute(httppost);

正如您可以从代码中想象的那样,您在一个 POST-var 中没有 JSON,而是在全部中。

于 2013-07-27T22:46:51.310 回答