繁体   English   中英

PHP-从HTTPS请求获取JSON正文

[英]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.

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