Для получения полного доступа
зарегистрируйтесь.
Сниппет,  PHP

Простейший REST-клиент


<?php
/**
 * @param string $method Метод (GET|POST|PUT|DELETE)
 * @param string $url    URL запроса
 * @param array  $data   Тело запроса (POST, PUT)
 * @param array  $gets   Дополнителные GET-параметры
 *
 * @return mixed
 */
function callRestApi($method, $url, $data = [], $gets = [])
{
    $curl = curl_init();
    switch (strtolower($method)) {
        case 'post':
            curl_setopt($curl, CURLOPT_POST, 1);
            if ($data) {
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            }
            break;
        case 'put':
            curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
            curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-HTTP-Method-Override: PUT']);
            if ($data) {
                curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
            }
            break;
        case 'delete':
            curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');
            curl_setopt($curl, CURLOPT_HTTPHEADER, ['X-HTTP-Method-Override: DELETE']);
            break;
    }
    if ($gets) {
        $url = sprintf("%s?%s", $url, http_build_query($gets));
    }

    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    
    curl_close($curl);
    
    return $result;
}
  php rest curl

Автор


corpsee
  • Репутация: 13
  • Сниппеты : 5
  • Ревизии : 0
Подписаться

Чтобы увидеть комментарии, нужно быть участником сообщества

Регистрация