2014-10-30 44 views
0

我想解決爲什麼對Web服務的調用沒有返回我需要的結果。PHP CURL從CURL返回不同的結果對於Linux

使用curl設計的Linux

curl -i -H "Accept: application/json" "https://www.thisapi.com/stuff/?status=something" > myfile.txt 

我得到正確的結果,對象首發:{ 「OBJECT_COUNT」:4,...

使用與libcurl的PHP和

$curl = curl_init(); 
$hdr[] = 'Content-type: application/json'; 
$hdr[] = 'Accept: application/json'; 

curl_setopt($curl, CURLOPT_HTTPHEADER, $hdr); 

$url = 'https://www.thisapi.com/stuff/?status=something'; 
curl_setopt($curl, CURLOPT_URL, $url); 

//return the data 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

$results = curl_exec($curl); 

忽略URL變量「status」,我得到{「object_count」:8 ...

任何人都可以幫助我弄清楚這兩個請求在哪些方面是不相同的,因此爲什麼他們沒有返回相同的結果?

+0

你的「東西」是什麼樣的?可能它應該被url編碼? – Cheery 2014-10-30 18:07:40

+0

@Cheery - 只是文本,沒有通常需要url編碼的實體。字面上「狀態=活動」 – Ambulare 2014-10-30 18:09:07

+1

而且,爲什麼你有'$ hdr [] ='Content-type:application/json';'?你正在向遠程服務器發送什麼? – Cheery 2014-10-30 18:10:35

回答

0

在第二種情況下,你有一個額外的標題你發送 - Content-type: application/json。也許這會導致API端點以不同的方式響應,而忽略URL中的參數,因爲它期望的是JSON格式的內容。