Comment imiter une soumission de formulaire HTML dans une requête POST?

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

<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> 
21
demandé sur Chris Spittles 2011-12-07 18:48:28

1 réponses

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

fieldname1=fieldvalue1&fieldname2=fieldvalue2

C'est-à-dire que 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 qu'un navigateur ferait, vous pouvez poster le formulaire avec Firefox, puis inspectez les en-têtes et le corps de la requête à l'aide du panneau net de Firebug.

41
répondu Martin 2013-11-24 23:03:22