通过代理服务器 使用 XMLHTTP

来源:百度文库 编辑:神马文学网 时间:2024/04/30 09:07:10
[Web Development]通过代理服务器 使用 XMLHTTP 
文章收藏,  软件技术,  电脑与网络
Collin 发表于 2005-8-28 12:21:07
转载自:http://blog.mvpcn.net/possible/archive/2004/11/07/5149.aspx
使用代理的情况下在服务器端使用XMLHTTP
最近同事在asp的服务器端程序里用xmlhttp来post数据的时候遇到了问题,始终不能成功。
<%
Set x=server.CreateObject("Microsoft.xmlhttp")
x.Open "GET","http://xxxx.xx.xx/xxx/xx.asp",False
x.Send
Resposne.Write x.responseText
%>
(http://xxxx.xx.xx/xxx/xx.asp是internet上的,可以访问的)
开始觉得很奇怪,因为以前在学校里时经常在服务器端程序里用xmlhttp都没有任何问题。试了一下把服务器端程序改为客户端的javascript程序在ie运行或者直接写成vbs文件运行,都可以成功地post。而后又发现如果把目标url改为localhost或公司局域网内的机器的都可以成功地post。
看来是网络环境的问题,可是为什么客户端的javascript程序又能正常呢?
最后想到了是使用了代理的问题(这里要多谢inlem的提醒),因为公司是通过代理上的internet,而我们的ie里都是正确的设置了代理的,所以客户端的javascript程序可以成功地post。而WinHTTP则没有设置,所以server to server始终不能正常连接。
最后用proxycfg.exe来设置WinHTTP。proxycfg是ms提供的工具,win XP默认在System32下就有proxycfg.exe,而win2000需要到http://msdn.microsoft.com/msdn-files/027/001/468/Proxycfg.exe下载。关于proxycfg配制WinHTTP:
(1)、在server-to-server时,不使用proxy servers,则在cmd里运行proxycfg -d
(2)、在server-to-server时,使用proxy servers,则在cmd里运行proxycfg -p myProxyServer:80 ""
还有一个简单的配制方法,就是先在IE里设置好代理,然后直接在cmd里运行proxycfg -u,则系统会按照ie里的代理设置来配制WinHTTP。
(具体可见http://support.microsoft.com/default.aspx?scid=kb;EN-US;289481)
在cmd里运行了proxycfg -u后,再把Microsoft.xmlhttp改为MSXML2.ServerXMLHTTP,程序就能正常运行了。
PS:如果代理服务器需要身份验证,则用x.Open "GET", url, False, username, password
_xyz