HTTP GET запрос в VBS - PullRequest
       38

HTTP GET запрос в VBS

0 голосов
/ 02 июля 2019
Token = aiudhaiw
Target = 88192823
url = "https://example.com" + Token + Target

Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.Open "GET", url, False
o.Send

Допустим, у меня есть этот код, например, он работает, но он работает только 1 раз.Я пытаюсь обновить Token или Target или оба (при необходимости) в следующих строках, а затем снова использовать o.Send, и он должен отправить его снова, и он должен работать правильно?Но это не так.

, если я попробую снова с тем же Token, Target, это не сработает.Даже если я изменю их и снова изменю url, это не сработает.

Единственный способ заставить его работать - это создать новый o.Open, и он также не работаетс теми же Token и Target снова.

1 Ответ

1 голос
/ 03 июля 2019

Вызов Send по открытому запросу дважды приводит к ошибке 0xC00C0240:

Этот метод не может быть вызван после вызова метода отправки.

ИтакВы ДОЛЖНЫ открыть новый запрос, прежде чем сможете снова позвонить Send.

Демонстрация:

Это работает:

>>> <b>url = "https://www.example.org/"</b>
>>> <b>Set req = CreateObject("Msxml2.XMLHTTP.6.0")</b>
>>> <b>req.Open "GET", url, False</b>
>>> <b>req.Send</b>
>>> <b>req.Open "GET", url, False</b>
>>> <b>req.Send</b>

Это не 't:

>>> <b>url = "https://www.example.org/"</b>
>>> <b>Set req = CreateObject("Msxml2.XMLHTTP.6.0")</b>
>>> <b>req.Open "GET", url, False</b>
>>> <b>req.Send</b>
>>> <b>req.Send</b>
This method cannot be called after the send method has been called.
 (0xC00C0240)

Кроме того, чтобы изменить URL-адрес, необходимо повторно открыть запрос.Невозможно изменить URL-адрес уже открытого запроса.

>>> <b>url = "https://www.example.org/"</b>
>>> <b>Set req = CreateObject("Msxml2.XMLHTTP.6.0")</b>
>>> <b>req.Open "GET", url, False</b>
>>> <b>req.Send</b>
>>> <b>url = "https://www.example.com/"</b>  <i>'this has no effect on req!</i>
>>> <b>req.Send</b>
This method cannot be called after the send method has been called.
 (0xC00C0240)
>>> <b>req.Open "GET", url, False</b>        <i>'now the request uses the new URL</i>
>>> <b>req.Send</b>

Возможность повторного использования токена полностью зависит от того, как запрос обрабатывается сервером.Если токен предназначен только для одноразового использования, вы не сможете рассчитывать на успешную отправку одного и того же запроса дважды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...