【问题标题】:Getting Data via a PHP Curl Call通过 PHP Curl 调用获取数据
【发布时间】:2014-12-04 03:47:53
【问题描述】:

我正在尝试进行 PHP 卷曲调用。该调用在 POSTMAN 中有效,如下所示:

URL Endpoint: https://api.sb.example.com/v1/resource/identifier

Headers: 
Content Type: application/json
Authorization : Bearer AccessTokenValue

HTTP Protocol : GET

此调用返回一个有效的 JSON 响应。现在,当我使用 PHP 做同样的事情时,我无法得到响应。这是我的 PHP Curl 调用:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.sb.example.com/v1/resource/identifier");
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type : application/json',
                                            'Authorization : Bearer AccessTokenValue'
));

$data = curl_exec($ch);
print_r($data);
curl_close($ch);

这个通过 PHP 的调用给了我错误:

HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1

对代码有什么想法/建议吗?

【问题讨论】:

    标签: php api rest curl postman


    【解决方案1】:

    所以我想通了,我在 KeyValue 对的 headers 数组中有一个空格。

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type : application/json', ..)
    

    应该是的

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json',
    

    【讨论】:

      【解决方案2】:

      请在 curl_exec() 之前添加以下所述行

      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);                                         
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-17
        • 1970-01-01
        • 2017-07-09
        • 2020-04-07
        • 2016-05-14
        相关资源
        最近更新 更多