繁体   English   中英

PHP API内容类型:application / json。 响应为空数据

[英]PHP API Content-Type: application/json. Response empty data

适用于:

  • 从Android平台发送到PHP(Web服务)
  • 与此Content-Type: application/x-www-form-urlencoded一起发送的请求标头Content-Type: application/x-www-form-urlencoded

不适用于:

  • 使用Content-Type: application/json发送的请求标头Content-Type: application/json 没有收到数据

API在同一平台上工作,但不在跨平台上工作:

  • 网络到网络
  • Android到网络无法正常工作

在PHP中,两个标头都放在顶部:

header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');

如果您在“第一个可与PHP一起使用,第二个不与PHP一起使用”中比较这两种内容类型application / x-www-form-urlencoded和application / json,则您可能希望数据在两者中都神奇地出现在$ _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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM