【问题标题】:Not able to get JSON response using CURL PHP无法使用 CURL PHP 获得 JSON 响应
【发布时间】:2018-02-01 05:01:41
【问题描述】:

我正在尝试编写一个 PHP 脚本,将用户名和密码作为 JSON 对象发布到服务器,并作为响应获取一个 JSON 对象,其中包含 JSON 中的 UserId 和令牌。

以下是我的代码

if (isset($_GET["user"]) && isset($_GET["key"])){

$username = $_GET["user"];
$pass = $_GET["key"];

$data = array("username" => $username, "password" => $pass);                                                                                   
$data_string = json_encode($data);              
echo $data_string;

$ch = curl_init('https://sce15.appspot.com/api/g_usrs/signin');                                                                                                                                           
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));                                                                                                                   

$response = curl_exec($ch);

curl_close($ch);

$usr = json_decode($response, true);
echo $usr;

}
else{

    echo "Oops Something went wrong: Error 1";
}

但是我没有得到任何输出,我的浏览器窗口是空白的。我无法弄清楚错误。使用 javascript 获取相同 URL 时,我能够获取 JSON 对象,但我需要使用 PHP。

感谢任何帮助。谢谢

【问题讨论】:

  • 如果不知道您发布到的网络服务以及它如何响应,这是不可能回答的。
  • 网络服务器为我提供了带有一些值的 JSON 对象。问题不在于服务器,我已经使用 javascript 脚本测试过同样的问题
  • 也许 JSON 不好?
  • JSON格式完美,我已经测试过了,你认为代码没有错误吗?
  • 你有一个完全空白的屏幕?所以即使echo $data_string; 也不会打印任何东西?

标签: php json curl server


【解决方案1】:

在谷歌上敲了 2 天之后,我终于指出了问题所在。这是 SSL 证书错误,CURL 无法验证 SSL 证书。

在检查 curl 错误print_r(curl_error($ch));后我才知道

然后通过使用curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);,我能够禁用 SSL 证书安全检查。虽然这让我的连接不安全,但我认为这对我来说并不重要。

谢谢大家

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-27
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多