Curl отправка get запроса

Как сделать мир лучше с помощью компьютера

Для быстрого тестирования запросов к web сервисам очень удобно использовать curl запросы из командной строки. Простой GET запрос легко ввести прямиком в браузере, но вот с POST уже будет сложнее. Разумеется есть множество программ с удобным интерфейсом, но часто бывает что они не всегда под рукой, не установлены или надо написать универсальную инструкцию. В таком случае гораздо быстрее открыть терминал, ввести команду и сразу получить результат. Для установки curl на linux достаточно выполнить команду

Здесь я приведу несколько наиболее типичных примеров CURL запросов.

Пример CURL POST запроса и CURL GET запроса
curl -X POST http://127.0.0.1/page
curl -X GET http://127.0.0.1/page

Пример отправки данных постом
вариант 1: curl -X POST -d «data1=1&data2=2″ http://127.0.0.1/page
вариант 2: curl -X POST -d ‘<«data1″: «1″, «data2″: «2″>’ http://127.0.0.1/page
О том как программно загружать файлы с помощью curl смотрите в статье о загрузке файлов курлом

Пример отправки файла
curl -i -X POST —form datafile=@/path/to/file.pdf http://127.0.0.1/page
Обратите внимание на параметр -i, определяющий получение от сервера только заголовка. Параметр не обязательный, но ведь обычно достаточно только знать загрузился файл или нет.

Пример CURL запроса с авторизацией
curl -u username:password http://127.0.0.1/page -XPOST -d « > О полезном параметре -v ниже.

Пример CURL JSON запроса
curl -X POST http://127.0.0.1/page -d ‘<«id»: «123″>’ -H «Content-Type:application/json»
Некоторые сервисы бракуют запросы без указания content-type, поэтому в случае json запроса — лучше всегда отправлять хэдер json.

Читайте также:  Что такое телетайп на андроиде

Из полезных параметров стоит рассмотреть команду -v (verbose) чтобы получить максимум информации по запросу.
О том как работать с curl запросом через прокси смотрите в данной статье.

Приведённых примеров должно хватить для использования в 95% , если понадобятся более тонкие запросы, то используйте

В прошлой статье мы с Вами рассмотрели отправку POST-запросов в cURL. Однако, иногда скрипт принимает только GET-запросы (как правило, это скрипты поиска). И вот чтобы обрабатывать и принимать данные и от таких скриптов, надо уметь отправлять GET-запросы в cURL тоже, чему Вы и научитесь, прочитав эту статью.

Принцип отправки GET-запросов в cURL абсолютно тот же, что и при отправке методом POST: есть файл-источник и есть файл-приёмник. Файл-источник, используя модуль cURL, отправляет GET-запрос на файл-приёмник. Файл-приёмник этот запрос обрабатывает и возвращает результат, который принимается файлом-источником, опять же, используя возможности cURL.

Чтобы стало всё абсолютно понятно, давайте рассмотрим простой пример, который мы с вами рассматривали при отправке POST-запросов. То есть файл-источник отправляет два числа, файл-приёмник возвращает сумму этих чисел, которую файл-источник принимает и записывает в переменную, которая затем выводится в браузер.

Для начала файл-приёмник ("receiver.php"):

Здесь всё очень просто: записываем в переменные $a и $b данные из GET-запроса, а дальше выводим их сумму, которая и будет принята файлом-источником.

Теперь создадим сам файл-источник:

Обратите внимание, что для отправки GET-запросов Вам не надо ничего настраивать (как это было при оптравке методом POST). Вам надо только в URL указать сам GET-запрос, который необходимо отправить. Всё! Разумеется, результат выполнения данного скрипта будет вывод числа 15 (5 + 10).

Теперь Вы уже подкованы окончательно и можете отправлять абсолютно любые запросы на любые скрипты, так что практикуйтесь!

Читайте также:  Fallout 76 можно играть одному

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 5 ):

    В файле-приемнике receiver.php выводится 0, так и должно быть?

    отправляю параметр методом get на страницу с формой.при обработке этой формы этот get параметр пропадает.пытался записать его в сессию , но при обновлении она и в сессии видимо принимает "пустоту".как сохранить переданный get параметр для его дальнейшего использования.

    Если Вы верно передаете $_GET он априори, пропасть не может. Читайте мат. часть.

    GET параметр передается нормально на страницу с формой , далее эта форма обрабатывается и соответственно страница обновляется .и во время обновления этот параметр пропадает , потому что он не отправляется на этой же странице.

    Потому и читайте мат.часть. Возвращать надо через header или подобным образом,либо заносить куда-либо. Прямо в обработчике

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

    Читайте также:  Чем отличаются отчеты от форм

    GET запрос

    POST запрос

    file_get_contents() так же умеет отправлять POST запросы:

    PUT запрос

    DELETE запрос

    HTTP-метод DELETE используется в REST API для удаления объектов.

    Отправка файлов на другой сервер

    Отправка файлов осуществляется методом POST :

    С PHP 5.5 такой метод загрузки файлов вызывает ошибку, поэтому следует применять CURLFile.

    Также через curl можно отправить сразу несколько файлов:

    Еще файлы можно отправить методом PUT , например так загружаются файлы в REST API Яндекс Диска.

    Скачивание файлов

    Curl позволяет сохранить результат сразу в файл, указав указатель на открытый файл в параметре CURLOPT_FILE .

    Чтобы CURL сохранял куки в файле достаточно прописать его путь в параметрах CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR .

    Передать значение кук можно принудительно через параметр CURLOPT_COOKIE .

    Имитация браузера

    На многих сайтах есть защита от парсинга. Она основана на том что браузер передает серверу user agent , referer , cookie . Сервер проверяет эти данные и возвращает нормальную страницу. При подключение через curl эти данные не передаются и сервер отдает ошибку 404 или 500. Чтобы имитировать браузер нужно добавить заголовки:

    HTTP авторизация

    Если на сервере настроена HTTP авторизация, например с помощью .htpasswd, подключится к нему можно с помощью параметра CURLOPT_USERPWD .

    Оцените статью
    ПК Знаток
    Добавить комментарий

    Adblock
    detector