我有一些PHP文件,这些文件可以访问请求正文中的JSON,然后对其执行操作。
我使用以下方法获取JSON
$json = file_get_contents('php://input');
$input = json_decode($json, TRUE);
并使用以下命令访问值:
$input["val"]
但是,我刚刚升级到HTTPS,并推论这不是读取/接收任何JSON。
如何从HTTPS请求中获取JSON数据?
答案 0 :(得分:0)
情况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);
答案 1 :(得分:0)
请注意跨站点https问题。使用https时,您的浏览器容忍度要比使用纯http时低。例如,一旦您的主站点为https,则支持脚本也将为https。
我建议您仔细查看浏览器的“网络”标签,寻找其他线索。
我希望这可以为您指明正确的方向。
---进一步调查---
您能尝试这些(寻找线索)吗?
print "<br>json: '$json'";
print "<br> type: ".gettype($json);
print "<br> last error: ".json_last_error();
答案 2 :(得分:0)
发现我的问题-我正在发送GET请求而不是POST请求。
由于某种原因,这种方法在没有HTTPS的情况下仍然有效,所以我认为这不是问题。立即修复!