pXML= Product_Request
set http= server.Createobject("MSXML2.ServerXMLHTTP")
http.Open "GET", "http://test.com/Data_Check/Request.asp?XML_File=" & pXML , False
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.send
我需要使用以上网址的上述asp代码发送请求。但我不需要该服务器的响应。
发送请求后,它会等待响应。 如何编写此代码以便在等待响应时不会阻塞?
答案 0 :(得分:1)
您可以直接使用WinHTTPRequest对象(这是ServerXMLHTTP的基础)。它有一个额外的方法,可能对WaitForResponse
方法有用。
Set winHttpRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
winHttpRequest.Open "GET", "http://localhost/mypage.aspx", true
winHttpRequest.Send
''# Do other request normally here
winHttpRequest.WaitForResponse()
请注意,Open
方法的true
参数为async
。在这种情况下,Send
将在请求发送后但在收到任何响应之前立即返回。您现在可以执行其他操作,例如以正常的同步方式发出其他请求。完成后,您可以通过调用WaitForResponse
确保原始请求已完成。
<强>警告强>
Open
的调用可能会抱怨脚本环境不“异步调用”。答案 1 :(得分:0)
我不相信有一种方法可以确定您的请求在没有响应的情况下成功。那么,确定无响应和完全失败之间的区别是什么?
答案 2 :(得分:0)
将您的Open请求更改为Asynchronous(即第3个参数为True)。这将允许您同时提交两个请求。然后你等待两个回复到达。
pXML = Product_Request
Set http = server.Createobject("MSXML2.ServerXMLHTTP")
http.Open "GET", "http://test.com/Data_Check/Request.asp?XML_File=" & pXML , True
http.Send
Set http2 = server.Createobject("MSXML2.ServerXMLHTTP")
http2.Open "GET", insert_code_for_your_second_url_here , True
http2.Send
http1.WaitForResponse
http2.WaitForResponse