经过排查我怀疑是php输出的结果字符编码 和 java接收的字符编码出问题了。
我的服务器编码自带的charset=utf-8
不知道java 接收php接口数据时php需求做什么编码处理。
function ossCallback(){
header("Content-Type: application/json;;charset=utf-8");
$data = array("Status"=>"Ok");
return json_encode($data);
}
这个代码输出的数据,我用自己的电脑mac 抓包,数据是没有问题的.
用windows抓包的时候 就出现乱码了。
提示 Json 格式不正确,确认 PHP 输出的是 json 字符串。
PHP 将数据转 json 表示:
json_encode()
同时 PHP 在输出时设置响应头:
更新:使用 TP5
TP5 框架已经封装好了
json()
方法了。在控制器里面这样:
补充
出现乱码, PHP进行 json 编码时,加上参数
JSON_UNESCAPED_UNICODE
。