PHP: Отправка HTTP-запросов с помощью php curl
PHP cURL (Client URL Library) — это библиотека для отправки HTTP-запросов и получения ответов от веб-серверов. С помощью cURL можно создавать автоматические программы, которые могут взаимодействовать с веб-сервисами и получать данные с других веб-сайтов.
Примеры использования PHP cURL:
Пример 1: Отправка GET-запроса на URL и получение ответа:
В этом примере мы отправляем GET-запрос на URL https://www.example.com/api/handler/ и получаем ответ от сервера. Функция curl_setopt_array() используется для настройки параметров запроса, включая URL-адрес, заголовки, тип запроса и другие параметры.
$url = 'https://www.example.com/api/handler/'; $curl = curl_init(); curl_setopt_array( $curl, [ CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $url, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '. 'AppleWebKit/537.36 (KHTML, like Gecko) '. 'Chrome/58.0.3029.110 Safari/537.36' ]); $response = curl_exec( $curl ); curl_close( $curl ); echo $response;
Пример 2: Отправка POST-запроса на URL и получение ответа:
В этом примере мы отправляем POST-запрос на URL https://www.example.com/api/handler/, передавая параметры username и password. Функция curl_setopt_array() используется для настройки параметров запроса, включая URL-адрес, заголовки, тип запроса и другие параметры.
$url = 'https://www.example.com/api/handler/'; $data = [ 'username' => 'admin', 'password' => 'secret' ]; $curl = curl_init(); curl_setopt_array( $curl, [ CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $url, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $data, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '. 'AppleWebKit/537.36 (KHTML, like Gecko) '. 'Chrome/58.0.3029.110 Safari/537.36' ]); $response = curl_exec( $curl ); curl_close( $curl ); echo $response;
Пример 3: Загрузка файла на сервер с помощью POST-запроса:
В этом примере мы загружаем файл file.jpg на сервер с помощью POST-запроса на URL https://www.example.com/upload.php. Мы используем функцию CURLFile() для передачи файла в запросе.
$url = 'https://www.example.com/upload.php'; $file_path = '/path/to/file.jpg'; $curl = curl_init(); curl_setopt_array( $curl, [ CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $url, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => [ 'file' => new CURLFile( $file_path ) ], CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '. 'AppleWebKit/537.36 (KHTML, like Gecko) '. 'Chrome/58.0.3029.110 Safari/537.36' ]); $response = curl_exec( $curl ); curl_close( $curl ); echo $response;
Пример 4: Установка пользовательских заголовков и настройка соединения:
В этом примере мы устанавливаем пользовательские заголовки Authorization и Content-Type, а также настраиваем соединение с помощью параметров CURLOPT_CONNECTTIMEOUT и CURLOPT_TIMEOUT. Функция curl_setopt_array() используется для настройки параметров запроса, включая URL-адрес, заголовки, тип запроса и другие параметры.
$url = 'https://www.example.com/api/handler/'; $header = [ 'Authorization: Bearer <token>', 'Content-Type: application/json' ]; $curl = curl_init(); curl_setopt_array( $curl, [ CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $url, CURLOPT_HTTPHEADER => $header, CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_TIMEOUT => 30, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '. 'AppleWebKit/537.36 (KHTML, like Gecko) '. 'Chrome/58.0.3029.110 Safari/537.36' ]); $response = curl_exec( $curl ); curl_close( $curl ); echo $response;
Пример 5: Использование прокси-сервера:
В этом примере мы используем прокси-сервер http://proxy.example.com:8080 для отправки запроса. Мы также передаем имя пользователя и пароль для аутентификации на прокси-сервере с помощью параметра CURLOPT_PROXYUSERPWD. Функция curl_setopt_array() используется для настройки параметров запроса, включая URL-адрес, заголовки, тип запроса и другие параметры.
$url = 'https://www.example.com/api/handler/'; $proxy = 'http://proxy.example.com:8080'; $curl = curl_init(); curl_setopt_array( $curl, [ CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $url, CURLOPT_PROXY => $proxy, CURLOPT_PROXYUSERPWD => '<username>:<password>', CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '. 'AppleWebKit/537.36 (KHTML, like Gecko) '. 'Chrome/58.0.3029.110 Safari/537.36' ]); $response = curl_exec( $curl ); curl_close( $curl ); echo $response;
Это лишь небольшой список возможностей, которые предоставляет PHP cURL. Библиотека имеет множество других параметров и функций, которые можно использовать для настройки и отправки запросов. Документацию по PHP cURL можно найти на официальном сайте PHP: https://www.php.net/manual/ru/book.curl.php
Комментарии