2011-10-25 57 views
4

我试图集成的API,并且在API集成说明它显示以下内容:API集成PHP卷曲

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

卷曲例子:

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

我已经尝试使用下面的cURL代码没有成功。至于GET方法,我不确定如何将API LOGIN作为标头传递给API KEY &。

$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; 
+1

当您执行该卷曲脚本时会发生什么? –

+0

我得到一个无效的API密钥错误,这是由于使用=而不是:正如Kaivosukeltaja指出的那样。 – spiderling

回答

5

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

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

(doh)我曾经使用=尝试别的东西,忘了改变它。谢谢! – spiderling

+0

我一直在试图只打印返回的第一个报价的细节。但是会显示整个XML。即使我删除了所有的打印电话。 '## begin snip ## <?xml version =“1.0”encoding =“UTF-8”?> 2011- 09-22T23:59:59Z

第一提议的细节这里
<值类型= “浮动”> 495.0 ##端剪断## 打印$ XML->报价[0] - >详情' – spiderling

0

你可以从卷曲一些调试信息,看看到底是什么不为你工作:

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 

之前,请务必您胜负,并终结卷曲对象

+0

谢谢。我会保持对未来的方便。 – spiderling