Comment empêcher ServerXMLHTTP de suivre automatiquement les redirections (HTTP 303 Voir Autres réponses)?
-
03-07-2019 - |
Question
J'utilise ServerXMLHTTP pour effectuer un HTTP POST. La réponse renvoyée est une redirection (plus précisément 303 Voir Autre). ServerXMLHTTP suit automatiquement cette redirection, mais cela provoque un échec de l'authentification car il ne propage pas l'en-tête Authorization de la requête d'origine.
Existe-t-il un moyen d’empêcher la redirection automatique (ou d’assurer que l’en-tête d’autorisation est renvoyé)?
La solution
ServerXMLHTTP ne prend pas en charge l'interception de redirections (voir Article 308607 de la Base de connaissances Microsoft ). Toutefois, WinHTTP peut être utilisé à la place et il contient une option configurable "activer les redirections".
Comment désactiver les redirections WinHTTP dans VBA:
webClient.Option(6) = False
Dans le contexte:
Set webClient = CreateObject("WinHttp.WinHttpRequest.5.1")
webClient.Option(6) = False
webClient.Open "POST", "http://example.com", False
webClient.send ("")