【问题标题】:api integration php curlapi 集成 php curl
【发布时间】:2011-12-15 04:24:59
【问题描述】:

我正在尝试集成 API,并且在 API 集成说明中显示以下内容:

GET /offers.json or /offers.xml
Headers: API-KEY={your_key}, API-LOGIN={your_login}

CURL 示例:

curl https://api.thewebsite.com/v1/offers.json -H 'API-KEY:
1a2b3c4d5e6f7g8h9i' -H 'API-LOGIN: 1a2b3c4d5e6f7g8h9i'

我尝试使用下面的 cURL 代码但没有成功。至于 GET 方法,我不知道如何将 API KEY & API LOGIN 作为 headers 传递。

$header = array('Content-Type: application/xml', 'API-KEY=1a2b3c4d5e6f7g8h9i', 'API-LOGIN=1a2b3c4d5e6f7g8h9i');
$url = "https://api.thewebsite.com/v1/offers.xml";

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
$xml = curl_exec($curl);
curl_close($curl);

print $xml;

【问题讨论】:

  • 执行该 curl 脚本时会发生什么?
  • 我收到了 Invalid API key 错误,这可能是由于使用了 = 而不是 : 正如 Kaivosukeltaja 指出的那样。

标签: php api curl http-headers


【解决方案1】:

需要使用冒号作为键和值之间的分隔符来指定 HTTP 标头,而不是等号。试试这个:

$header = array('Content-Type: application/xml', 'API-KEY: 1a2b3c4d5e6f7g8h9i', 'API-LOGIN: 1a2b3c4d5e6f7g8h9i');

【讨论】:

  • (doh) 我曾用 = 尝试过别的东西,却忘了更改它。谢谢!
  • 我一直在尝试仅打印返回的第一个报价的详细信息。但是会显示整个 XML。即使我删除了所有打印调用。 ## begin snip ## <?xml version="1.0" encoding="UTF-8"?> <offers type="array"> <offer> <end-date type="datetime">2011-09-22T23:59:59Z</end-date> <details>First offer details here</details> <faq nil="true"></faq> <value type="float">495.0</value> ## end snip ## print $xml->offer[0]->details
【解决方案2】:

您可以从 curl 获取一些调试信息,并确切了解哪些不适合您:

print "<pre>\n";
print_r(curl_getinfo($curl));  // get error info
echo "\n\ncURL error number:" .curl_errno($curl); // print error info
echo "\n\ncURL error:" . curl_error($ch); 
print "</pre>\n";
curl_close($curl); // close curl session

确保在关闭和终止 curl 对象之前调用它

【讨论】:

  • 谢谢。我会留着以备不时之需。
【解决方案3】:

试试下面的 -

print "<pre>\n";
print_r(curl_getinfo($curl));  // get error info
echo "\n\ncURL error number:" .curl_errno($curl); // print error info
echo "\n\ncURL error:" . curl_error($ch); 
print "</pre>\n";
curl_close($curl); 

【讨论】:

    猜你喜欢
    • 2017-05-18
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2012-10-22
    • 2021-02-12
    • 2021-02-09
    相关资源
    最近更新 更多