Como posso evitar que ServerXMLHTTP de seguir automaticamente redirecionamentos (HTTP 303 Ver Outras respostas)?
-
03-07-2019 - |
Pergunta
Eu estou usando ServerXMLHTTP para executar um HTTP POST. A resposta retornado é um redirecionamento (especificamente 303 See Other). ServerXMLHTTP está seguindo automaticamente esse redirecionamento, mas isso está causando uma falha de autenticação como não é propagar o cabeçalho de autorização da solicitação original.
Existe uma maneira que eu posso evitar que o redirecionamento automático (ou, alternativamente, garantir que o cabeçalho de autorização é reenviado)?
Solução
ServerXMLHTTP não suporta intercepção de redirecionamentos (veja Microsoft Knowledge Base artigo 308607 ). No entanto WinHTTP pode ser usado em seu lugar e este não contém um configurável 'permitir redirecionamentos' opção.
Como desativar redirecionamentos WinHTTP em VBA:
webClient.Option(6) = False
No contexto:
Set webClient = CreateObject("WinHttp.WinHttpRequest.5.1")
webClient.Option(6) = False
webClient.Open "POST", "http://example.com", False
webClient.send ("")