26 novembre 2020
publié par 

Les types restRequete et httpRequete sont recommandés pour la consommation d'un webservice (API) REST pour plusieurs raisons :

  • ils utilisent une implémentation native au framework des applications, donc sans dépendance avec des API du système (wininet...).
  • ils sont régulièrement mis en conformité avec les spécifications des protocoles,
  • une interrogation depuis une application WINDEV sous Windows, WINDEV Mobile sous Android ou iOS, ou depuis un site WEBDEV aura le même résultat (du moment que les configurations ansi/unicode des chaînes sont identiques).

 

Dans le cas précis d'une requête HTTP avec la méthode DELETE, le standard veut que la requête soit envoyée sans contenu. Donc lorsqu'une requête DELETE est envoyée avec RESTEnvoie ou HTTPEnvoie, le contenu n'est pas transmis. En effet, si le webservices contacté est strict, il peut refuser la requête DELETE si elle a un contenu.


Dans la pratique, on constate que certains webservices REST détournent le mécanisme et au contraire exploitent le contenu d'une requête reçue en DELETE. Certains outils de test tels que Postman ou SoapUI laissent d'ailleurs le contenu donné à une requête DELETE. Pour ce cas particulier, une demande a été faite à notre équipe développement, pour ajouter un mode "permissif" dans une prochaine version, laissant le contenu d'une requête DELETE lorsqu'elle est envoyée avec les types restRequete et httpRequete. En attendant, pour envoyer un contenu dans une requête DELETE, il est possible d'utiliser la fonction HTTPEnvoieFormulaire. En effet cette fonction permet d'utiliser la méthode DELETE, tout en laissant les différents paramètres qui pourront être donnés avec la fonction HTTPAjouteParamètre.

 

== Mise à jour le 29/9/2021 ==

L'ajout d'un contenu dans une requête DELETE est accepté à partir de la version 27. Il s'agit de la nouveauté 129.

 

 

< Retour

8 commentaires

Bachir
26/11/2020 - 09:55 - Répondre
Bonjour merci pour ce post et cette solution de contournement en attendant la mise à jour Notre plus gros problème réside lors d appel massive par le retour d erreur : erreur système a été détecté pendant l envoi de la requête http. Cet appel s effectue sans https, le serveur a reçu correctement la requête mais de notre côté la fonction restrequete ne renvoi pas l id que nous attendons. En interfacant curl nous n avons plus d erreur. Je sais que vous avez déjà fait un post sur cette erreur mais cela persiste. A part ce problème la gestion des appels web service est très agréable sous windev

Guillaume BAYLE
27/11/2020 - 17:19 - Répondre
Bonjour, n'hésitez pas envoyer à notre support un exemple d'appel et le contenu complet donné par le mécanisme de sécurité du WLangage. Bons développements !

Patoche
09/12/2020 - 11:13 - Répondre
Bonjour et merci pour votre article. "Dans le cas précis d'une requête HTTP avec la méthode DELETE, le standard veut que la requête soit envoyée sans contenu" En regardant la rfc https://tools.ietf.org/html/rfc7231#section-4.3.5 « A payload within a DELETE request message has no defined semantics; sending a payload body on a DELETE request might cause some existing implementations to reject the request.” Donc le standard n'interdit pas le body lors de l'envoie tant que ce dernier ne modifie pas le comportement en question. D'où la possibilité des outils cités de permettre l'insertion d'un body. Ou est-ce que j'ai loupé un truc ? Merci pour votre retour,

Guillaume BAYLE
14/12/2020 - 11:41 - Répondre
Bonjour, je partage votre avis ça serait bien d'avoir une option pour l'autoriser. J'ai à nouveau fait la demande à l'équipe développement pour les prochains versions. Bons développements !

Eric TORCIA
04/01/2021 - 10:46 - Répondre
Bonjour pour ma part , la méthode httpenvoieformulaire n'a rien résolu , le passage des paramètres dans ce modèle ne parvient pas au site cible en https de plus , il y a l'utilisation d'un Token qui ne doit pas être autorisé dans ce modèle j'attends impatiemment la version v26 avec un httpdelete "permissif" Slts

Guillaume BAYLE
05/01/2021 - 10:15 - Répondre
Bonjour, n'hésitez pas à formuler une requête à notre support en présentant votre cas d'utilisation avec un exemple. L'utilisation d'un proxy peut aussi vous permettre de contrôler ce que vous envoyez : https://blogs.pcsoft.fr/fr/apres-analyse-trames-tcp-suite-cas-requetes-https/281474976710947/read.awp

TORCIA Eric
12/02/2021 - 07:54 - Répondre
Bonjour J'ai vu que la première mise à jour V26 était disponible est-il prévu que cette version intègre enfin le httpdelete "permissif" ? et si oui comment procéder ? Slts

Guillaume BAYLE
12/02/2021 - 15:03 - Répondre
Bonjour, la page des nouveautés htps://pcsoft.fr/st/telec/windev26/windev26_75g.htm de la mise à jour "Update 1" n'en fait pas mention. Il s'agira sans doute d'une nouveauté d'une nouvelle version, plutôt que d'une update intermédiaire. En attendant comme indiqué vous pouvez utiliser un proyx et nous fournir un exemple. Bons développements !

Publier un commentaire : 
Votre adresse email ne sera pas publiée