dimastik1986
@dimastik1986
учусь

Как составить cURL запрос к REST api?

Здравствуйте, мне нужно получить информацию от Желдорэкспедиция с помощью их API по номеру ТТН, казалось бы не оч сложно, но я не могу понять как работать с cURL и составить запрос, для получения ответа json, помогите пожалуйста, а дальше я уже разберусь сам! Оч надо! Спасибо!
  • Вопрос задан
  • 1445 просмотров
Решения вопроса 1
@scanerrr
I am a doctor
Все ведь в доках php.net/manual/en/curl.examples.php
// create curl resource
$ch = curl_init();

// set url
curl_setopt($ch, CURLOPT_URL, "https://api.jde.ru/vD/cargos/status?user=00001&token=00004&ttn=0000006");

//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// $output contains the output string
$output = curl_exec($ch);

// close curl resource to free up system resources
curl_close($ch);
echo '<pre>';
var_dump($output);
echo '</pre>';
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@imhuman
С учетом того, что не нужно отправлять заголовки, а параметры отправляются GETом, можешь ограничиться:
$res = file_get_contents('https://api.jde.ru/vD/cargos/status?user=00001&token=00004&ttn=0000006');
Ответ написан
Комментировать
Ninazu
@Ninazu
function request($endpoint, $method, $data){
    $ch = curl_init($endpoint);                                                                      
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);                                                                     
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));                                                                  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
    curl_setopt($ch, CURLOPT_HTTPHEADER, [                                                                         
        'Content-Type: application/json'                                                         
    ];                                                                                                                   
                                                                                                                     
    $result = curl_exec($ch);

    if (empty($result)) {
          return [
              'status'=>false,
              'error'=>curl_error($ch)
          ];
    }

    return [
         'status'=>true,
         'response'=>$result
    ];
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы