2015-03-31 97 views
0

我想從共享主機調用一個API(mapquest)url。如何從PHP調用API url?

該網址工作正常,因爲它顯示了粘貼在瀏覽器中的預期JSON響應。

但是,我不能讓它從一個PHP頁面工作。 我試過curlfile_get_contents都沒有成功。

我不斷獲取HTTP/1.1 400 Bad Request錯誤...

這裏是我使用的代碼,這是很基本的...

$ch=curl_init(); 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE); 
    $result=curl_exec($ch); 
    if(!$result){ 
     exit ('cURL ERROR: '.curl_error($ch)); 
    } 
    return var_dump($result); 
+0

哎呀你沒有設置頭.. – 2015-03-31 10:21:11

+1

你發送所有必要的標題? – Daan 2015-03-31 10:21:15

回答

1

你好嘗試這樣

$query = urlencode('where={"steps":9243}'); 
$ch = curl_init('https://api.parse.com/1/classes/Steps?'.$query); 

curl_setopt($ch,CURLOPT_HTTPHEADER,array('X-Parse-Application-Id: myApplicationID', 
    'X-Parse-REST-API-Key: myRestAPIKey', 
    'Content-Type: application/json')); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_exec($ch); 
curl_close($ch); 

有些事是指該鏈接

Querying API through Curl/PHP

0

我知道了!

該網址由JSON數據和空格組成。

URL的這部分必須用urlencode()編碼,但不是完整的url。

它適用於curlfile_get_contents()

0

試試下面的代碼

$ch = curl_init(); 
    $curlConfig = array(
     CURLOPT_URL   => "http://www.bing.com/", 
     CURLOPT_POST   => true, 
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_POSTFIELDS  => array(
      'field1' => 'some date', 
      'field2' => 'some other data', 
     ) 
    ); 
    curl_setopt_array($ch, $curlConfig); 
    echo $result = curl_exec($ch); 
    curl_close($ch);