Подтвердить что ты не робот

Как я могу сделать запрос с параметрами GET и POST?

Здесь выдержка из заголовков Live HTTP, я заменил несколько значений для анонимности.

POST blah/admin.php?module_id=1&action=update&id=129&pageNum=17&&eid=362 HTTP/1.1

Host: blah

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Firefox/3.6.12

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 115

Connection: keep-alive

Referer: blah

Cookie: blah

Content-Type: multipart/form-data; boundary=---------------------------21278813472729408841849703914

Content-Length: 5110

-----------------------------21278813472729408841849703914

Content-Disposition: form-data; name="MAX_FILE_SIZE"



300000000

Этот запрос имеет как значения GET, так и POST. script на другом конце этого является PHP и ожидает, что определенные значения будут в GET, а другие - в POST.

Я знаю, как выпустить GET

curl -G -d "key=val" "http://yadayadayada"

И я понимаю, как делать POST

curl -d "key=val" "http://yadayadayada"
curl -F "key=val" "http://yadayadayada"

Но как мне смешивать два в одном запросе? Каждая попытка, которую я сделал до сих пор, закончилась ошибкой.

4b9b3361

Ответ 1

В URL могут быть включены переменные GET. Вы просто включаете переменные GET в строку запроса. Например, если вы хотите отправить запрос GET с именем "username = fred" на www.example.com/index.php, вы отправите простой запрос GET на "http://www.example.com/index.php? = имя пользователя Фрэд". Поэтому, чтобы ответить на ваш вопрос, просто используйте метод POST, но укажите URL-адрес ваших данных GET.

Ответ 2

Чтобы уточнить, GET и POST являются методами HTTP-запросов, а не типами значений.

  • Переменные GET называются параметры строки запроса. Они являются частью URL-адреса и могут быть включены в любой запрос.
  • POST-переменные - это содержимое тела сообщения с urlencoded. Они также могут быть отправлены с запросом PUT.

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

curl -d "key=val" "http://example.com?query_var=1"