Asp classic 如何在不等待响应的情况下从XMLHTTP发送请求?

Asp classic 如何在不等待响应的情况下从XMLHTTP发送请求?,asp-classic,Asp Classic,我需要发送请求与上述asp代码为上述网址。但我不需要那个服务器的响应 发送请求后,它将等待响应。 如何编写此文件,使其在等待响应时不会阻塞?我不相信有任何方法可以确定您的请求在没有响应的情况下是否成功。那么,如何确定无响应和完全失败之间的区别呢?您可以直接使用该对象(这是ServerXMLHTTP的基础)。它还有一个可能有用的附加方法WaitForResponse方法 pXML= Product_Request set http= server.Createobject("MSXML2.Serv

我需要发送请求与上述asp代码为上述网址。但我不需要那个服务器的响应

发送请求后,它将等待响应。
如何编写此文件,使其在等待响应时不会阻塞?

我不相信有任何方法可以确定您的请求在没有响应的情况下是否成功。那么,如何确定无响应和完全失败之间的区别呢?

您可以直接使用该对象(这是ServerXMLHTTP的基础)。它还有一个可能有用的附加方法
WaitForResponse
方法

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
注意
Open
方法的
true
用于其
async
参数。在这种情况下,
Send
将在请求发送后但在收到任何响应之前返回。您现在可以以正常的同步方式执行其他操作,如发出其他请求。完成后,您可以通过调用
WaitForResponse
确保原始请求已完成

注意事项

  • 我从来没有在ASP中直接这样做过,对
    Open
    的调用可能会抱怨脚本环境没有“执行异步调用”
  • 您有一个假设,即可以同时提出这两个请求。如果他们是两个不同的服务器,那么这将是罚款,如果不是它仍然可能罚款,但可能有其他复杂的问题
  • 当您向ASP页面发出请求时,每个请求都会在该服务器上创建一个新会话,这是需要注意的
  • 就我而言,有一个假设,您不是在调用代码运行的同一台服务器,如果您是这样的话,可能会导致线程池死锁

将打开请求更改为异步(即第三个参数为True)。这将允许您同时提交两个请求。然后等待两个响应到达

 Set winHttpRequest = CreateObject("WinHttp.WinHttpRequest.5.1") 
 winHttpRequest.Open "GET", "http://localhost/mypage.aspx", true

 winHttpRequest.Send

 ''# Do other request normally here

 winHttpRequest.WaitForResponse()

我需要发送第一个请求并转到下一个请求。我需要在另一台服务器中生成的响应。我的问题是。。第一个请求需要10秒才能获得重播,第二个响应需要15秒才能获得重播。总共25秒。我需要在15秒内完成此操作…请求2是否要求请求1首先完成?我需要发送两个请求,并将两个请求的响应权重一起发送。。因为我需要在min-timeAJAX中完成响应,所以异步允许您在不等待的情况下触发两个请求,在回调中捕获响应,然后您就可以继续了。Anthony似乎在这方面做得更好。10年前我放弃了经典的ASP。顺便说一句,我希望每次看到内容类型标题被发送一个“GET”请求时都能赚到一英镑。根据定义,GET不携带任何内容,因此指定其类型没有什么意义。我的第一个想法是:com visible.net组件来处理异步部分。ASP classic中的异步是Heisenbug的领域。
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