PHP json_encode()什么都不返回

时间:2012-05-16 11:26:53

标签: java php android json

好的,前几天我在Java中编写了一个代码块,它将发送请求发送到PHP文件,以便将一些数据存储在MySQL数据库中,并从PHP接收简单的json_encode()字符串,例如“error_101”响应它运作得很好。昨天我重新安装了我的XAMPP,因为我在openssl PHP扩展方面遇到了一些问题,现在我的json_encode()响应都没有返回值。我检查了phpinfo(),并说它启用了json支持。要提到从JAVA发送给PHP的值也是JSON对象,json_decode()工作正常!

这是我将PHP响应发送到JAVA的代码:

<?php 
    header('Content-type: application/json');
    echo json_encode("error_101");
?>

以下是在JAVA中获取响应的代码

HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
HttpConnectionParams.setSoTimeout(httpParams, 10000);
HttpClient client = new DefaultHttpClient(httpParams);

String url = "http://192.168.254.19/android/register.php";

HttpPost request = new HttpPost(url);
request.setEntity(new ByteArrayEntity(json.toString().getBytes("UTF8")));
request.setHeader("json", json.toString());

HttpResponse response = client.execute(request);
HttpEntity entity = response.getEntity();

String result = null;
if (entity != null) {
    InputStream instream = entity.getContent();

    InputStreamReader is_reader = new InputStreamReader(instream);
    BufferedReader br = new BufferedReader(is_reader);
    result = br.readLine();
    Log.i("Read from server", result);
    Toast.makeText(this,  result, Toast.LENGTH_LONG).show();
}

我得到的回答是“<br />

3 个答案:

答案 0 :(得分:1)

您确定在链上读取

的某处没有调试代码
echo $TesttVar1 . '<br />';

这也会阻止“header()”工作。打开所有错误(error_reporting(E_ALL); ini_set('display_errors','on');)这将显示输出的行,如果是这样的话。

但是如果它是json_encode则帮助清除它,只返回“Error_101”而没有要测试的功能。但我不认为你在这个计划中走得那么远。

答案 1 :(得分:0)

json_encode需要一个数组。像

json_encode(array('status'=>'error_101'));

答案 2 :(得分:0)

在这种情况下:

header("Content-type: text/html");
echo json_encode("error_101");

它有效。

在另一个案例中:

header("Content-type: application/json");
echo json_encode("error_101");

它不起作用。

这似乎是一个错误!