Section courante

A propos

Section administrative du site

«POST» manuellement des données d'un formulaire dans un service Web

Bien que peu documenter il est possible de passer manuellement des paramètres de formulaires à un service Web. Si par exemple, nous avons le script PHP «monservice.php» fournissant un service de base comme ceci :

  1. <?php
  2. /*
  3. Ce script permet de générer le service web démonstrateur
  4. */
  5. header('Content-type: application/xml');
  6. header('Cache-Control: no-cache, must-revalidate');
  7.  
  8. if(!isset($_POST["func"])) echo "function name expected"; else {
  9.    switch($_POST["func"]) {
  10.         case "updateUser":
  11.             echo "ok";
  12.             break;
  13.         default:
  14.             echo "bad function name";
  15.             break;
  16.    }
  17. }
  18.  
  19. ?>

on peut lui transmettre à l'aide du code source ASP 3.0 suivant l'appel à une fonction «updateUser» et recevoir le message de celui-ci:

  1. <%
  2. ' "POST" manuellement des données d'un formulaire à un service Web en ASP
  3. Const MULTIPART_BOUNDARY = "9876543210----------0123456789"
  4.  
  5. Sub addFormParam(strData,variable,value)
  6.     strData = strData & "--" & MULTIPART_BOUNDARY & vbCrLf
  7.     strData = strData & "Content-Disposition: form-data; name=""" & variable & """" & vbCrLf & vbCrLf
  8.     strData = strData & value & vbCrLf
  9. End Sub
  10.  
  11. Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP" )
  12. HttpReq.open "POST", "http://feuille/service/test/monservice.php", False
  13. HttpReq.SetRequestHeader "Content-Type", "multipart/form-data; boundary=" & MULTIPART_BOUNDARY
  14. strData = ""
  15. addFormParam strData,"func","updateUser"
  16. HttpReq.SetRequestHeader "Content-Length", Len(strData) + 2
  17. HttpReq.Send strData
  18. Response.Write HttpReq.responseText
  19. %>

L'exécution de ses scripts retourner le message suivant :

ok

Voir également

Articles - Comparatif des méthodes «POST» ou «GET» ?

Dernière mise à jour : Samedi, le 20 juin 2015