好的,前几天我在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 />
”
答案 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");
它不起作用。
这似乎是一个错误!