java如何制作php代码来显示我发送给服务器的内容?
我试图将jsonarray上载到服务器,然后获取响应文本,以查看服务器对对象做了什么。在安卓方面,我有以下代码:
HttpPost httppost = new HttpPost("http://10.0.0.2/namedate.php");I am
HttpClient httpclient = new DefaultHttpClient();
httppost.getParams().setParameter("jsonarray", json_a.toString());
HttpResponse response = httpclient.execute(httppost);
String responseText = EntityUtils.toString(response.getEntity());
Log.d("ProviderTester", "The response text is "+ responseText);
Log.i("JSONInfo","JSON object: " + json_a.toString());
jsonarray在logcat中看起来像这样:
04-10 21:29:53.293: I/JSONInfo(466): JSON object: ["[name=Mike, datetime=2012-04-10 21:29]","[name=Roger, datetime=2012-04-10 21:29]"]
目前,我只是想回显字符串,希望以后能从字符串中取出表格:
<?php
echo $_POST['jsonarray'];
?>
以下是我从logcat得到的回复:
04-10 22:22:20.033: D/ProviderTester(499): The response text is
如何修复此问题,以便查看发送到服务器的jsonarray字符串
编辑:当我将Android代码更改为:
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("json_a", json_a.toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
String responseText = EntityUtils.toString(response.getEntity());
然后,我使用php脚本接受的答案在LogCat中得到以下响应:
04-10 23:05:39.833: D/ProviderTester(601): The response text is POST = array (
04-10 23:05:39.833: D/ProviderTester(601): 'json_a' => '[name=Mike, datetime=2012-04-10 21:29]\\",\\"[name=Roger, datetime=2012-03-10 21:29]\\"]\\"]',
04-10 23:05:39.833: D/ProviderTester(601): )
04-10 23:05:39.833: D/ProviderTester(601): GET = array (
04-10 23:05:39.833: D/ProviderTester(601): )
04-10 23:05:39.833: D/ProviderTester(601): request = array (
04-10 23:05:39.833: D/ProviderTester(601): 'Content-Length' => '174',
04-10 23:05:39.833: D/ProviderTester(601): 'Content-Type' => 'application/x-www-form-urlencoded',
04-10 23:05:39.833: D/ProviderTester(601): 'Host' => 'graasdfon.hostei.com',
04-10 23:05:39.833: D/ProviderTester(601): 'Connection' => 'Keep-Alive',
04-10 23:05:39.833: D/ProviderTester(601): 'User-Agent' => 'Apache-HttpClient/UNAVAILABLE (java 1.4)',
04-10 23:05:39.833: D/ProviderTester(601): 'Expect' => '100-Continue',
04-10 23:05:39.833: D/ProviderTester(601): )
04-10 23:05:39.833: D/ProviderTester(601):
04-10 23:05:39.833: D/ProviderTester(601): <!-- www.000webhost.com Analytics Code -->
现在我只需要弄清楚如何在服务器端处理json。谢谢你的帮助
# 1 楼答案
PHP无法对非标量数据类型进行隐式toString()表示。您需要进行显式转换
例如,如果要查看所有HTTP变量和请求头,请尝试以下操作:
(这不会拾取写入STDIN但未作为帖子正确嵌入的内容)
# 2 楼答案
您需要在post的实体中传递json值。试试这个:
而不是:
# 3 楼答案
我不知道是什么导致了您的问题(我不知道Android/Java),但最好的调试方法是在PHP中简单地执行以下操作:
这将导致PHP输出通过POST接收到的所有内容