适用于:
- 从Android平台发送到PHP (web service)
- 请求头与此
Content-Type: application/x-www-form-urlencoded
一起发送
不工作:
- 请求头与
Content-Type: application/json
一起发送。未收到数据
API在同一平台上工作,但不是跨平台的:
- Web到Web WORKING
- Android到web不工作
在PHP中添加了两个标题:
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');
如果你比较这两种内容类型application/x-www-form-urlencoded和application/json在"第一个工作与PHP,第二个不",那么你可能期望在这两种情况下的数据神奇地出现在$_POST。
这不会发生。PHP只在给定第一种内容类型时填充$_POST(或者,application/multipart-form-data可以用于所有内容,特别是文件上传)。
如果你想使用application/json,那么你必须自己在PHP端实现一个解析器,读取HTTP请求体并根据你的喜好进行解析。
经过日志搜索,我找到了我的答案。我们需要这个函数从跨平台(android到web)获取$_POST响应
file_get_contents('php://input')
或者我们也可以使用这个函数来获取$_POST响应
$HTTP_RAW_POST_DATA
这里是获得响应的完整函数。
$data = urldecode(file_get_contents('php://input'));
echo $data;