如何使用Microsoft.XMLHTTP指定代理配置?

ope*_*sas 9 proxy xmlhttprequest asp-classic

我正在使用来自经典asp页面的Microsoft.XMLHTTP将信息发布到另一个站点......

我希望能够检查fiddler发生了什么,为此我必须找到一种方法来配置Microsoft.XMLHTTP以使用代理...

可能吗?Microsoft.XMLHTTP从哪里获取配置?

非常感谢

Ant*_*nes 14

我认为这里的一些事情需要清理.

ProgID"Microsoft.XMLHTTP"指向与"MSXML2.XMLHTTP"相同的类.此类使用Internet Explorer使用的WinINET HTTP协议堆栈,因此将使用PC上Internet设置中的任何代理配置.

因此,对于"Microsoft.XMLHTTP",proxycfg命令没有用.

XMLHTTP的替代方案是"MSXML2.ServerXMLHTTP".此类使用WinHTTP HTTP协议栈,该协议栈设计为轻量级且服务器友好.在WinINET不在的同一进程中,在多个线程中使用多个实例是安全的.因此,ServerXMLHTTP应该用在服务器端的ASP代码中.

WinHTTP不使用WinINET使用的Internet设置,因此要配置ServerXMLHTTP将使用您需要使用proxycfg命令的代理.一个非常有用的命令是: -

proxycfg -u
Run Code Online (Sandbox Code Playgroud)

它将当前的WinINET代理设置复制到WinHTTP使用的设置,如果你使用像fiddler这样的工具,这对于在fiddler启动后开始监控通过WinHTTP的流量非常有用.(请注意,您要跟进proxycfg -d以删除代理设置).

ServerXMLHTTP还有一种setProxy方法,允许动态配置实际代理设置为代码.


小智 6

对于Windows Vista及更高版本,可能已弃用proxycfg.exe,并替换为netsh winhttp.如本文所述:http://msdn.microsoft.com/en-us/library/windows/desktop/aa384069%28v=vs.85%29.aspx

作为我在win7中的情况,我需要做以下设置代理:

netsh winhttp set proxy myProxyServer:80
Run Code Online (Sandbox Code Playgroud)