以下はライブ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=の両方の値があります。この反対側のスクリプトはPHPであり、特定の値がGETにあり、他の値がポストで。
GETの発行方法を知っている
curl -G -d "key=val" "http://yadayadayada"
そして、私はPOSTを行う方法を理解しています
curl -d "key=val" "http://yadayadayada"
curl -F "key=val" "http://yadayadayada"
しかし、1つの要求に2つを混在させるにはどうすればよいですか?これまでに行ったすべての試みはエラーで終了しました。
GET変数をURLに含めることができます。クエリ文字列にGET変数を含めるだけです。たとえば、「username = fred」を指定したGETリクエストをwww.example.com/index.phpに送信する場合、単純なGETリクエストを「http://www.example.com/index.php」に送信します。 ?username = fred」。したがって、質問に答えるには、POSTメソッドを使用しますが、GETデータをURLに含めます。
明確にするために、GETおよびPOSTはHTTP要求メソッドであり、値のタイプではありません。
したがって、両方のタイプの値を送信する場合は、クエリ文字列を明示的に記述しながら、通常どおりPOSTデータを送信します。
curl -d "key=val" "http://example.com?query_var=1"