Sim*_*mon 5 vbscript http-headers
我正在尝试使用vbscript提交一些帖子数据表单。我将其发布到的站点包含一些Java,并且在标题中戳了一下,我注意到它正在发送一个cookie JSESSIONID,其中包含,我相信这与Java身份验证有关:
Cookie: JSESSIONID=XXXXXXXXXXXXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)
当我只发送我想发送的地址和帖子数据并查看responsetext时,它会将我发送回java身份验证页面,这使我认为我需要检索jsessionid cookie并将其与数据一起提交。
这是我用来提交帖子数据的功能。对于简单的形式,这似乎可以正常工作,但是此页面上的java有点让我失望:
Function Fetch(URL, POST)
Set WshShell = CreateObject("WScript.Shell")
Set http = CreateObject("Microsoft.XmlHttp")
http.open "POST", URL, FALSE
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.send POST
Fetch = http.responseText
set WshShell = nothing
set http = nothing
End Function
Run Code Online (Sandbox Code Playgroud)
我的问题确实是:该怎么做?我是否需要加载第一页,获取Cookie并使用表单重新提交它?如果是这样,我该如何检索服务器在标头中发送回的cookie?当我查看它们发送回的标题时,我可以看到:
Set-Cookie: JSESSIONID=XXXXXXXXXXXXXXXXXXXXX; Path=/Page
Run Code Online (Sandbox Code Playgroud)
非常感谢。
您可以通过http.getResponseHeader("Set-Cookie")或解析http.getAllResponseHeaders()。然后,您应该通过http.setRequestHeaders "Cookie", "JSESSIONID=XXXXXXXXXXXXXXXXXXXXX; Path=/Page"下一个请求将cookie值添加到请求标头。
因此,还有一个选择(如果我没记错的话)CreateObject("WinHttp.WinHttpRequest.5.1")。
只要您使用同一个实例,它就能记住先前在下一个请求中使用的cookie。
| 归档时间: |
|
| 查看次数: |
13263 次 |
| 最近记录: |