cURL 请求从 imgur api 获得 NULL 响应

Posted

技术标签:

【中文标题】cURL 请求从 imgur api 获得 NULL 响应【英文标题】:cURL request is getting NULL response from imgur api 【发布时间】:2013-08-02 21:52:30 【问题描述】:
    $image = file_get_contents($_FILES['upload']['tmp_name']);
    $id = 'myid';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://api.imgur.com/3/image.json');
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Client-ID ' . $id));
    curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'image' => base64_encode($image) ));
    $response = curl_exec($ch);
    curl_close($ch);
    $response = json_decode($response);

这是我必须将匿名图像上传到 imgur 的引用块。它适用于我的mac os机器上的xampp,但它不适用于我的Windows上的xampp。我也知道以下关于 windows xampp 上 curl 的知识:

-it is enabled
-it works when i try to grab the content of an url
-it doesnt work when i try to make DELETE request to remove an anonymous image(the same code works on the mac os xampp)

我认为两台计算机上的 cURL 设置之间存在一些差异。如果你能告诉我方法,我将不胜感激!提前致谢。

【问题讨论】:

如果你查看你的phpinfo(),有一个名为“curl”的部分。尝试比较这些。 查看输出了哪些 cURL 错误 echo curl_error(); 这可能是 CA 的问题,在这种情况下,您需要使用正确的 cURL 函数指向它。 非常无耻的插件:您可以使用 Runscope 来检查请求/响应数据,而无需在代码中转储响应。这样您就可以看到实际的 API 响应是什么。 【参考方案1】:

这是一个 SSL 问题。请在curl_exec 调用之前尝试以下行

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

(您可以添加var_dump($response); 以查看服务器响应。)

【讨论】:

我是否通过投票来接受答案?抱歉,这是我的第一个问题,我还没有足够的代表来支持答案。但是,我保证我会在可能的时候回来。 复选标记应该在投票按钮下方..就像i.stack.imgur.com/uqJeW.png

以上是关于cURL 请求从 imgur api 获得 NULL 响应的主要内容,如果未能解决你的问题,请参考以下文章

Webonyx/Graphql-php 入门:如何在 cURL 中获取 API 的响应而不会从 API 实现中获得回声?

有没有办法从 github 操作获得对 GitHub API 的写入权限?

HTTP post/API 请求在 bash 上从 CURL 发送时有效,从 Apache http 失败

在 Python 中从 curl 中提取单个值

如何从.net核心调用ibm watson api

localhost上的测试Laravel API无法获得响应