2011-10-25 172 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