【发布时间】: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"}