[英]PHP - Get JSON body from HTTPS request
我有一些PHP文件,可在请求正文中访问某些JSON,然后对其进行操作。
我使用以下方法获取JSON:
$json = file_get_contents('php://input');
$input = json_decode($json, TRUE);
并使用以下命令访问值:
$input["val"]
但是,我刚刚升级到HTTPS,并推论这不是读取/接收任何JSON。
如何从HTTPS请求中获取JSON数据?
情况1:根据问题提供的详细信息,我最好的猜测是您的目标服务器没有有效的SSL证书。
情况2您的服务器没有可用于php脚本的https包装器。 检查以下脚本的输出。
<?php
$wrappers = stream_get_wrappers();
echo 'openssl: ', extension_loaded ('openssl') ? 'yes':'no', "\n";
echo 'http wrapper: ', in_array('http', $wrappers) ? 'yes':'no', "\n";
echo 'https wrapper: ', in_array('https', $wrappers) ? 'yes':'no', "\n";
echo 'wrappers: ', var_export($wrappers);
留意跨站点https问题。 使用https时,您的浏览器容忍度要比使用纯http时低。 例如,一旦您的主站点为https,则支持脚本也将为https。
我建议您仔细查看浏览器的“网络”标签,寻找其他线索。
我希望这可以为您指明正确的方向。
- - 进一步的调查 - -
您可以尝试这些(寻找线索)吗?
print "<br>json: '$json'";
print "<br> type: ".gettype($json);
print "<br> last error: ".json_last_error();
发现了我的问题-我正在发送GET请求而不是POST请求。
由于某种原因,这种情况在没有HTTPS的情况下是有效的,所以我不认为这是问题所在。 立即修复!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.