web-dev-qa-db-fra.com

Comment imiter une soumission de formulaire HTML dans une demande POST?

J'ai un formulaire HTML utilisé pour envoyer des rapports de bogues de l'application au serveur. J'ai besoin d'imiter ce comportement par programme. À quoi ressemblera la POST requête (ou série de requêtes) correspondante?

<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> 
22
Violet Giraffe

Une demande POST se compose d'un certain nombre d'en-têtes et d'un corps de demande. Lorsque vous soumettez un formulaire, le navigateur l'URL code les noms et les valeurs de tous les champs du formulaire, puis place les dans le corps de la demande dans ce format:

fieldname1=fieldvalue1&fieldname2=fieldvalue2

C'est à dire. le corps de la requête ressemble à une chaîne de requête typique.


Voici à quoi pourrait ressembler la demande pour votre formulaire:

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=

Pour vous assurer que votre programme correspond à ce que ferait un navigateur, vous pouvez publier le formulaire avec Firefox, puis inspecter les en-têtes et le corps de la demande à l'aide du panneau net de Firebug .

43
Martin