Как отправить запросы GET и POST с помощью Curl?

Как отправить запросы GET и POST с параметрами gimmeflag и значением please в URL http://103.200.7.150:7777/ с помощью curl в командной строке?

1
задан 24 November 2017 в 23:39

4 ответа

Этот ответ показывает способ получения результатов ответа @ Videonauth, но с wget:

$ wget -qO- http://103.200.7.150:7777/ Please send me request method GET and POST with params "gimmeflag" and value "please" $ wget -qO- http://103.200.7.150:7777/?gimmeflag=please # GET is the default request KSL{n0w_y0u_Know_How_To $ wget -qO- --post-data '' http://103.200.7.150:7777/?gimmeflag=please # Simple POST req. _S3nD_r3quesT_Meth0d_GET_AND_POST} $ printf '\n%s%s\n' \ "$(wget -qO- http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)" \ "$(wget -qO- --post-data '' http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)" KSL{n0w_y0u_Know_How_To_S3nD_r3quesT_Meth0d_GET_AND_POST}

Из @ Ответ Видеонаута :

-O file; --output-document=file - The documents will not be written to the appropriate files, but all will be concatenated together and written to file. If '-' is used as file, documents will be printed to standard output, disabling link conversion... -q; --quiet - Turn off Wget's output. --post-data=string; --post-file=file - Use POST as the method for all HTTP requests and send the specified data in the request body. --post-data sends string as data, whereas --post-file sends the contents of file. Other than that, they work in exactly the same way. In particular, they both expect content of the form "key1=value1&key2=value2", with percent-encoding for special characters... Only one of --post-data and --post-file should be specified... This example shows how to log in to a server using POST and then proceed to download the desired pages, presumably only accessible to authorized users: # Log in to the server. This can be done only once. wget --save-cookies cookies.txt --post-data 'user=foo&password=bar' \ http://example.com/auth.php
2
ответ дан 18 July 2018 в 04:39

Похоже, вы следуете учебнику или книге, и это нахальный способ проверить, если у вас есть основы.

Вызов http://103.200.7.150:7777/ через завиток или браузер дает следующий результат: Пожалуйста, пришлите мне метод запроса GET и POST с параметрами «gimmeflag» и значением «please»

Давайте разложим его на две части, так как вы хотите знать, как это делается с curl (см. [

Использование GET для отправки вашего запроса:

Это довольно просто, если вы знаете, как выглядит man 1 curl как.

Вызов http://103.200.7.150:7777/ через curl или browser дает следующий результат:

Веб-сервер может обрабатывать запрос протокола Hypertext Transfer Protocol либо путем чтения файла из его файловой системы на основе пути URL-адреса или обработки запроса с использованием логики, характерной для типа ресурса. В случаях, когда вызывается специальная логика, строка запроса будет доступна для этой логики для использования в ее обработке вместе с компонентом пути URL. ([D3] http://103.200.7.150:7777/ )

В World Wide Web строка запроса является частью единого указателя ресурсов (URL), содержащего данные, которые не подходят удобно в иерархическую структуру пути. Строка запроса обычно включает поля, добавленные в базовый URL, с помощью веб-браузера или другого клиентского приложения, например, как часть HTML-формы.

curl -X GET http://103.200.7.150:7777/?gimmeflag=please

Веб-сервер может обрабатывать передачу гипертекста Запрос протокола либо путем чтения файла из его файловой системы на основе пути URL-адреса, либо путем обработки запроса с использованием логики, специфичной для типа ресурса. В случаях, когда вызывается специальная логика, строка запроса будет доступна для этой логики для использования в ее обработке вместе с компонентом пути URL. ([D3] http://103.200.7.150:7777/ )

Пожалуйста, пришлите мне метод запроса GET и POST с параметрами «gimmeflag» и значением «please»

Вы хотите отправить параметр gimmeflag и значение please. Итак, строка, которую вы хотите запросить с помощью curl, это:

Результат, который вы вернетесь с сервера:

curl -X POST http://103.200.7.150:7777/?gimmeflag=please В результате вы возвращаетесь с сервера: _S3nD_r3quesT_Meth0d_GET_AND_POST}

KSL {n0w_y0u_Know_How_To

# Thanks to @pa4080 for this line printf '%s%s\n' \ "$(curl -X GET http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)" \ "$(curl -X POST http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)"

В результате вы возвращаетесь с сервера:

5
ответ дан 18 July 2018 в 04:39

Этот ответ показывает способ получения результатов ответа @ Videonauth, но с wget:

$ wget -qO- http://103.200.7.150:7777/ Please send me request method GET and POST with params "gimmeflag" and value "please" $ wget -qO- http://103.200.7.150:7777/?gimmeflag=please # GET is the default request KSL{n0w_y0u_Know_How_To $ wget -qO- --post-data '' http://103.200.7.150:7777/?gimmeflag=please # Simple POST req. _S3nD_r3quesT_Meth0d_GET_AND_POST} $ printf '\n%s%s\n' \ "$(wget -qO- http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)" \ "$(wget -qO- --post-data '' http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)" KSL{n0w_y0u_Know_How_To_S3nD_r3quesT_Meth0d_GET_AND_POST}

Из @ Ответ Видеонаута :

-O file; --output-document=file - The documents will not be written to the appropriate files, but all will be concatenated together and written to file. If '-' is used as file, documents will be printed to standard output, disabling link conversion... -q; --quiet - Turn off Wget's output. --post-data=string; --post-file=file - Use POST as the method for all HTTP requests and send the specified data in the request body. --post-data sends string as data, whereas --post-file sends the contents of file. Other than that, they work in exactly the same way. In particular, they both expect content of the form "key1=value1&key2=value2", with percent-encoding for special characters... Only one of --post-data and --post-file should be specified... This example shows how to log in to a server using POST and then proceed to download the desired pages, presumably only accessible to authorized users: # Log in to the server. This can be done only once. wget --save-cookies cookies.txt --post-data 'user=foo&password=bar' \ http://example.com/auth.php
2
ответ дан 24 July 2018 в 18:08
  • 1
    Теперь нам нужно только знать, какой учебник или книга OP следует, и мы могли бы даже улучшить вопрос. – Videonauth 25 November 2017 в 00:47

Похоже, вы следуете учебнику или книге, и это нахальный способ проверить, если у вас есть основы.

Вызов http://103.200.7.150:7777/ через завиток или браузер дает следующий результат: Пожалуйста, пришлите мне метод запроса GET и POST с параметрами «gimmeflag» и значением «please»

Давайте разложим его на две части, так как вы хотите знать, как это делается с curl (см. [

Использование GET для отправки вашего запроса:

Это довольно просто, если вы знаете, как выглядит man 1 curl как.

Вызов http://103.200.7.150:7777/ через curl или browser дает следующий результат:

Веб-сервер может обрабатывать запрос протокола Hypertext Transfer Protocol либо путем чтения файла из его файловой системы на основе пути URL-адреса или обработки запроса с использованием логики, характерной для типа ресурса. В случаях, когда вызывается специальная логика, строка запроса будет доступна для этой логики для использования в ее обработке вместе с компонентом пути URL. ([D3] http://103.200.7.150:7777/ )

В World Wide Web строка запроса является частью единого указателя ресурсов (URL), содержащего данные, которые не подходят удобно в иерархическую структуру пути. Строка запроса обычно включает поля, добавленные в базовый URL, с помощью веб-браузера или другого клиентского приложения, например, как часть HTML-формы.

curl -X GET http://103.200.7.150:7777/?gimmeflag=please

Веб-сервер может обрабатывать передачу гипертекста Запрос протокола либо путем чтения файла из его файловой системы на основе пути URL-адреса, либо путем обработки запроса с использованием логики, специфичной для типа ресурса. В случаях, когда вызывается специальная логика, строка запроса будет доступна для этой логики для использования в ее обработке вместе с компонентом пути URL. ([D3] http://103.200.7.150:7777/ )

Пожалуйста, пришлите мне метод запроса GET и POST с параметрами «gimmeflag» и значением «please»

Вы хотите отправить параметр gimmeflag и значение please. Итак, строка, которую вы хотите запросить с помощью curl, это:

Результат, который вы вернетесь с сервера:

curl -X POST http://103.200.7.150:7777/?gimmeflag=please В результате вы возвращаетесь с сервера: _S3nD_r3quesT_Meth0d_GET_AND_POST}

KSL {n0w_y0u_Know_How_To

# Thanks to @pa4080 for this line printf '%s%s\n' \ "$(curl -X GET http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)" \ "$(curl -X POST http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)"

В результате вы возвращаетесь с сервера:

5
ответ дан 24 July 2018 в 18:08

Другие вопросы по тегам:

Похожие вопросы: