VBS 中的 HTTP GET 请求
HTTP GET request in VBS
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
。
对打开的请求调用 Send
两次导致错误 0xC00C0240:
This method cannot be called after the send method has been called.
所以您必须先打开一个新请求,然后才能再次调用 Send
。
示范:
这个有效:
>>> url = "https://www.example.org/"
>>> Set req = CreateObject("Msxml2.XMLHTTP.6.0")
>>> req.Open "GET", url, False
>>> req.Send
>>> req.Open "GET", url, False
>>> req.Send
这不是:
>>> url = "https://www.example.org/"
>>> Set req = CreateObject("Msxml2.XMLHTTP.6.0")
>>> req.Open "GET", url, False
>>> req.Send
>>> req.Send
This method cannot be called after the send method has been called.
(0xC00C0240)
此外,要更改 URL 您必须 re-open 请求。无法更改已打开请求的 URL。
>>> url = "https://www.example.org/"
>>> Set req = CreateObject("Msxml2.XMLHTTP.6.0")
>>> req.Open "GET", url, False
>>> req.Send
>>> url = "https://www.example.com/" 'this has no effect on req!
>>> req.Send
This method cannot be called after the send method has been called.
(0xC00C0240)
>>> req.Open "GET", url, False 'now the request uses the new URL
>>> req.Send
令牌能否re-used完全取决于服务器如何处理请求。如果令牌仅供 one-time 使用,则您不能指望能够成功发送两次相同的请求。
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
。
对打开的请求调用 Send
两次导致错误 0xC00C0240:
This method cannot be called after the send method has been called.
所以您必须先打开一个新请求,然后才能再次调用 Send
。
示范:
这个有效:
>>> url = "https://www.example.org/" >>> Set req = CreateObject("Msxml2.XMLHTTP.6.0") >>> req.Open "GET", url, False >>> req.Send >>> req.Open "GET", url, False >>> req.Send
这不是:
>>> url = "https://www.example.org/" >>> Set req = CreateObject("Msxml2.XMLHTTP.6.0") >>> req.Open "GET", url, False >>> req.Send >>> req.Send This method cannot be called after the send method has been called. (0xC00C0240)
此外,要更改 URL 您必须 re-open 请求。无法更改已打开请求的 URL。
>>> url = "https://www.example.org/" >>> Set req = CreateObject("Msxml2.XMLHTTP.6.0") >>> req.Open "GET", url, False >>> req.Send >>> url = "https://www.example.com/" 'this has no effect on req! >>> req.Send This method cannot be called after the send method has been called. (0xC00C0240) >>> req.Open "GET", url, False 'now the request uses the new URL >>> req.Send
令牌能否re-used完全取决于服务器如何处理请求。如果令牌仅供 one-time 使用,则您不能指望能够成功发送两次相同的请求。