2011-12-07 20 views
21

私はアプリケーションからサーバーへのバグレポートを送信するために使用されるHTMLフォームを持っています。私はプログラム的にこの動作を模倣する必要があります。対応するPOSTリクエスト(または一連のリクエスト)はどのように見えますか?POSTリクエストでHTMLフォームの提出を模倣する方法は?

<form name="bugreport" method="post" enctype="multipart/form-data" action="http://my-server.com/bugreport.php"> 
    <div name="SentData"> 
     <textarea name="logfile" class="UserVisible"></textarea><br> 
     <textarea name="configfile" class="UserVisible"></textarea><br> 
    </div> 
    <textarea name="usercomment" class="invisible"></textarea><br> 
    <input name="useremail" type="text" class="invisible"> 
    <input class="invisible" type="submit" value="Send"> 
</form> 

答えて

39

POST要求は、いくつかのヘッダーと要求本体で構成されています。フォーム、ブラウザURL encodes名およびすべてのフォームフィールドの値を送信して、この形式でリクエストボディでそれらを置くとき:

fieldname1=fieldvalue1&fieldname2=fieldvalue2 

すなわち、リクエスト本文は典型的なクエリ文字列のように見えます。ここで


は、要求があなたのフォームのように見えることができるものです:

POST /bugreport.php HTTP/1.1 
Host: www.example.com 
Content-Type: application/x-www-form-urlencoded 
Content-Length: [size of the request body] 

logfile=blabla&configfile=more+blabla&usercomment=hello&useremail= 

は検査、その後、あなたはFirefoxでフォームを投稿することができ、あなたのプログラムは、ブラウザがどうなるのかと一致していることを確認し、するには要求ヘッダーと本体はFirebugのネットパネルを使用しています。

+0

ありがとうございました! FireBugは本当に役に立ちました(しかし、あなたが原則を知っていればそれを必要としません)。 –

+0

サーバ**がそれらを処理できると仮定すると、HTTP **プロトコル**はコンテンツタイプx-www-form-urlencodedのための** "ジャンクデータ"を許可しますか?例えば。 'logfileblabla&configfile ===== mo + uselo &&&usereremail =&=&=&+' – Pacerier

+0

ありがとうございます。これは私が探していたものです。 – Joey

関連する問題