为什么不使用php中的curl来调用https Rest API?

时间:2016-05-08 16:19:04

标签: php rest curl

我正在尝试使用以下代码进行API调用:

<?php
    $service_url = 'https://favqs.com/api/qotd.json';
    $curl = curl_init($service_url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    $curl_response = curl_exec($curl);
    curl_close($curl);
    $json_objekat = json_decode($curl_response);
    echo $json_objekat->quote->author.'<br>';
    echo $json_objekat->quote->body.'<br>';
?>

此代码在我本地计算机的www(root)文件夹中保存为php文件。我使用的是WAMP服务器。

当我从WAMP打开这个文件时,它说:

  

注意:
  试图在第10行的C:\ wamp \ www \ IzdavackaKuca \ javniServis.php中获取非对象的属性   试图在第10行的C:\ wamp \ www \ IzdavackaKuca \ javniServis.php中获取非对象的属性   试图在第11行的C:\ wamp \ www \ IzdavackaKuca \ javniServis.php中获取非对象的属性   试图在第11行的C:\ wamp \ www \ IzdavackaKuca \ javniServis.php中获取非对象的属性

我在WAMP上检查了php扩展选项php_curl,但我不知道是否应该检查一些其他选项。我不知道我的WAMP服务器是否有问题或者问题是什么,因为我已经将相同的代码发送给其他几个人并且他们说它在他们的计算机上运行。我不知道错误在哪里,所以我希望有人可以帮助我 谢谢!

2 个答案:

答案 0 :(得分:0)

除非你真的这样做;我想你的WAMP服务器可能没有问题。我发现的问题是,根据错误消息,网址 https://favqs.com/api/qotd.json 未知SSL协议 。自己检查一下:

<?php

    $defaults = array(
        CURLOPT_URL             => 'https://favqs.com/api/qotd.json',
        CURLOPT_POST            => false,
        CURLOPT_HEADER          => false,
        CURLOPT_SSL_VERIFYPEER  => false,
        CURLOPT_RETURNTRANSFER  => true,
        CURLOPT_SSL_VERIFYHOST  => false,
    );
    $curl               = curl_init();
    curl_setopt_array($curl, $defaults);
    $curl_response      = curl_exec($curl);
    $json_objekat       = json_decode($curl_response);

    // DUMP THE CURL-ERROR INFORMATION:
    var_dump(curl_error($curl));
    curl_close($curl);

<强> ##编辑## 取决于您尝试做什么;我认为您可能需要一个访问代码才能正常工作,您可以在此处获取:enter image description here

当你这样做的时候;您所要做的就是修改代码并添加授权代码..​​....

答案 1 :(得分:0)

使用json_decode时。它会将您的json字符串传输到数组,而不是对象。那么,如果你想从那个回答中得到论据。你应该像这样编码

echo $json_objekat['quote']['author'].'<br>';
echo $json_objekat['quote']['body'].'<br>';