【问题标题】:PHP CURL issue with an API when retrieving datas检索数据时 API 的 PHP CURL 问题
【发布时间】:2022-01-26 23:46:55
【问题描述】:

我们有一个与分销商合作的 API。 我们的软件在 PHP 7.3.6 / Apache 2.4.38 下运行 我们已经成功完成了其他一些操作:创建新的采购订单、检索订单、... 我们在检索发票时遇到问题。 我们在 API 测试中使用了一个名为 POSTMAN 的软件。 我们输入所有信息(api key, ....) 使用 POSTMAN,它可以完美运行。 POSTMAN 中有一个选项可以获取不同语言的代码。为了我们的需要,我们采用了 PHP 生成的代码。问题是它不起作用。 我们还使用了https://reqbin.com/curl,它运行良好。但同样的问题,PHP中生成的代码不起作用。

例如,在 postman 或 reqbin 中,此 CURL 代码有效

curl -X GET https://url.com/Invoices?startDate="01-01-2019"&endDate="01-31-2023" \
-H 'Accept: application/json' \
-H 'Authorization: Bearer generatedtokenzzzzzzzzzzzzzzzzzzzzzzzzzzz' \
-H 'Content-Type: application/json' \
-H 'zzzzzzzzz-API-Key: generatedapikeyzzzzzzzzzzzzzz'

当我们点击生成 PHP 代码时,我们有这个代码:

<?php

$url = "https://url.com/Invoices?startDate="01-01-2019"&endDate="01-31-2023";

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$headers = array(
   "Accept: application/json",
   "Authorization: Bearer generatedtokenzzzzzzzzzzzzzzzzzzzzzzzzzzz",
   "Content-Type: application/json",
   "zzzzzzzzz-API-Key: generatedapikeyzzzzzzzzzzzzzz",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

$resp = curl_exec($curl);
curl_close($curl);
var_dump($resp);

?>

因为它不起作用,我们尝试添加一些选项,例如

CURLOPT_CUSTOMREQUEST => 'GET',

还是不行。

我们快疯了,我们在这个问题上花了一个多星期......

任何帮助都会非常有用。

非常感谢提前....

【问题讨论】:

  • 请以tour 开头并阅读How to Ask。您的问题的问题是“不起作用”不是合适的错误描述。一旦您在编辑器中启用语法高亮并注意细节,上述 PHP 代码的另一个问题就会变得很明显,但它在上面也可见。
  • 我们得到的消息是:{"message": "list index out of range"}

标签: php api curl postman


【解决方案1】:

我们找到了错误。 它不在此代码的一部分,但在上面。 一个参数没有正确传递,错误信息 {message": "list index out of range} 实际上是错误的。

【讨论】:

    猜你喜欢
    • 2015-10-05
    • 2014-02-10
    • 2019-02-13
    • 1970-01-01
    • 2011-12-10
    • 2013-08-06
    • 2019-11-15
    • 1970-01-01
    • 2015-12-10
    相关资源
    最近更新 更多