2016-06-10 116 views
0

我試圖從公司房屋API使用PHP中的curl下載json數據。顯示捲曲數據,空白頁

下面是他們提供的,我試圖用例子:

<?php 
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, "https://api.companieshouse.gov.uk/company/01000000"); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'curl -u8yUXrestOfmyApiKey:' 
    )); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); 
$result = curl_exec($curl); 
if(false == $result){ 
    echo curl_error($curl); 
} 
curl_close($curl); 
print($result); 

?> 

使用頭

curl -uYOUR_APIKEY_FOLLOWED_BY_A_COLON: https://api.companieshouse.gov.uk/company/{company_number} 

我的代碼:

'-u my_api_key:8yUXGgcHznjaNWnKpuKIJ7yv7HDvU_slH273GuF1' 
https://developer.companieshouse.gov.uk/api/docs/company/company_number/readCompanyProfile.html#here

的例子

我得到400 - 錯誤的請求,並在我的代碼上面的頭我沒有任何錯誤空白頁面沒有數據。

PS。沒有與號01000000公司我已經籤

+1

'-u'不是表頭。它用來傳遞'user:pass'對來捲曲。您需要'CURLOPT_USERPWD'來代替。 –

+0

@MarcB他們在文檔中說我應該只傳遞用戶名作爲API_key並且保留密碼爲空。 – Higeath

+0

無關緊要。 'curl -u'不是一個有效的http頭。你有使用curlopt_userpwd。你是否提供一個實際的pw取決於你,但你所做的是無效的。 –

回答

1

您shuld添加CURLOPT_USERPWD

curl_setopt($curl, CURLOPT_USERPWD, "YOUR API KEY"); #Add your api key

+0

Companies House API將用戶名作爲API密鑰並忽略密碼,因此可以留空 – Higeath

+0

在命令行中使用'curl -u8yUXGgcHznjaNWnKpuKIJ7yv7HDvU_slH273GuF1:https:// api.companieshouse.gov.uk/company/01000000'顯示JSON數據.. – Alex

+0

@ Alex ..你好先生。可以請你幫我解決這個問題.... http://stackoverflow.com/questions/37967017/how-to-trim-first-three-基於字符的首先letterexpression之前 –