2015-03-31 2 views
0

Я пытаюсь вызвать URL-адрес API (mapquest) с общего хоста.Как вызвать URL-адрес API из php?

URL-адрес хорошо работает, так как он показывает ожидаемый ответ JSON при вставке в браузер.

Однако я не могу заставить его работать с php-страницей. Я пробовал и curl и file_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

Opps вы не ставили заголовок .. –

+1

ли вам отправка всех необходимых заголовков? – Daan

ответ

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

Я получил его!

URL был составлен из данных JSON с пробелами.

Эта часть URL-адреса должна быть закодирована с помощью urlencode(), но не полный URL-адрес.

Он работает как с curl, так и с file_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); 
Смежные вопросы