Proxy 使用默认超时,ServerXMLHTTP超时时间不到2秒
我有一个问题涉及使用ServerXMLHTTP对象发送HTTPS GET请求时超时 为了欺骗对象发送带有登录用户id和密码的请求,我将其设置为使用虚拟代理,然后在intranet上排除URL的域。所以变量url_to_get包含.mydomain.com,而代理地址实际上不是.used.comProxy 使用默认超时,ServerXMLHTTP超时时间不到2秒,proxy,xmlhttprequest,credentials,winhttprequest,Proxy,Xmlhttprequest,Credentials,Winhttprequest,我有一个问题涉及使用ServerXMLHTTP对象发送HTTPS GET请求时超时 为了欺骗对象发送带有登录用户id和密码的请求,我将其设置为使用虚拟代理,然后在intranet上排除URL的域。所以变量url_to_get包含.mydomain.com,而代理地址实际上不是.used.com // JScript source code HTTP_RequestObject = new ActiveXObject("Msxml2.ServerXMLHTTP.6.0"); // Using l
// JScript source code
HTTP_RequestObject = new ActiveXObject("Msxml2.ServerXMLHTTP.6.0");
// Using logged in username authentication
HTTP_RequestObject.open("GET", url_to_get, false);
HTTP_RequestObject.setProxy(2, "not.used.com", "*.mydomain.com");
try
{
HTTP_RequestObject.send();
}
catch (e)
{
}
在catch块中,我记录了一个异常0x80072EE2,操作超时。这是在打开前的日志消息之后1到2秒的时间戳
重试将按预期工作,并且可以反复执行。这是服务器端的东西吗?还是代理的结果?这是痛苦和尴尬的。我找到了超时问题的根本原因。我将超时设置为比实际默认值小3个数量级的默认值。因此,即使我将它们增加到我认为非常大的值,我仍然比默认值短 我粗略地浏览了表上的措辞,并误解了参数的时基。我假设是秒,实际上是毫秒 在调试这个问题的过程中,我使用可选的COM对象WinHttp.WinHttpRequest.5.1复制了代码,并在验证等效API时发现了错误 在这个过程中,我确实学到了一些东西,所以一切都不会丢失,WinHttp.WinHttpRequest.5.1有一个SetAutoLogonPolicy[3]方法,它允许我跳过Msxml2.ServerXMLHTTP.6.0所要求的hokey代理愚蠢,迫使它将用户的凭据发送到intranet服务器。我也和提琴手玩过,学到了很多危险的东西 希望其他人能从我的错误中吸取教训,并在将来调试自己的问题时发现这一点很有用 以下是一些内联链接,因为我没有足够的代表发布两个以上: [3] :msdn.microsoft.com/en-us/library/windows/desktop/aa384050%28v=vs.85%29.aspx [4] :fiddler2.comMsxml2.ServerXMLHTTP.6.0可以通过代理使用。我花了一段时间,但坚持得到了回报。在微软的建议下,我从WinHttp.WinHttpRequest.5.1迁移到了Msxml2.ServerXMLHTTP.6.0 其中varHTTP是对Msxml2.ServerXMLHTTP.6.0的对象引用,您可以使用它
varHTTP.setproxy 2, ProxyServerName, "BypassList"
希望这对您有所帮助,您可以继续使用Msxml2.ServerXMLHTTP.6.0