Dav*_*vuz 14 excel vba xmlhttprequest excel-vba
我正在尝试编写一个Excel加载项,可以将Web服务中的数据导入Excel.
要使用它,用户只需键入加载项提供的函数名称即可.我在VBA中发现了两篇实现HTTP请求的文章:XMLHTTP和ServerXMLHTTP.
我使用它们有困难.我不知道使用哪一个.XMLHTTP和ServerXMLHTTP之间有什么区别?
Jac*_*ern 25
Davuz,
Tim和Jay都提供了出色的背景和简洁的评论.我将简单地添加一点并尝试给出一些上下文.
本质上,XMLHTTP对象用于创建XMLHttpRequest,用于从网站/ web服务器/ Web服务请求数据.有关详细信息,请参阅维基百科链接:http://en.wikipedia.org/wiki/XMLHttpRequest
通常,XMLHTTP通常在作为客户端与服务器通信时使用 - 例如,当您使用应用程序向Web服务发出请求时.XMLHTTP对象还用于各种以客户端为中心的传输方法,例如文件传输协议(FTP),URL缓存和其他有用的工具.简而言之,XMLHTTP对象用于向某种服务器发出请求并请求客户端感兴趣的内容,无论是通过FTP连接访问服务器,还是从存储库访问服务器,还是Web服务.用于处理来自客户端的数据.
相比之下,ServerXMLHTTP旨在用于服务器之间,应用程序(客户端)之间的通信以及处理来自客户端的请求.虽然ServerXMLHTTP对象使状态保持活动状态 - 意味着保留向/从目标发送/接收的信息以保留当前连接中的未来数据事务 - 但它也不主动支持某些XMLHTTP功能,例如"URL缓存,自动 - 发现代理服务器,HTTP/1.1分块,离线支持,以及对GX和FTP协议的支持"对于ServerXMLHTTP对象使用的http客户端堆栈.
从技术角度来看,XMLHTTP对象使用WinInet(Windows Internet Explorer)来实现其功能,而ServerXMLHTTP对象使用客户端堆栈.WinInet DLL是Windows Internet协议管理的主干,dll用于处理HTTP,HTTPS,FTP和类似请求.
相比之下,当ServerXMLHTTP对象创建一个新的客户端http堆栈时 - 这本质上是HTTP客户端的单独"会话".使用单独的会话意味着ServerXMLHTTP Object的多个实例可以在任何给定时间处于活动状态 - 具体取决于内存和套接字连接的可用性.
因此,简而言之 - 除了上述评论中的信息之外,XMLHTTP对象通常用于请求信息并以某种方式使用它,通常作为客户端.类似地有用但经常不同地使用,ServerXMLHTTP对象可用于请求数据,发送数据或甚至以相对有效的方式将接收到的另一个应用程序传递给另一个应用程序.这通常用于需要实时响应的业务应用程序,或者用于在给定一系列请求的情况下向客户端提供数据,可能具有内置于这些请求中的条件 - 以及更多.
希望这能说明两者之间的差异.在阅读使用特定XMLHTTP类型请求的SO问题/答案时,还有更多的内容,以及对MSDN和其他站点的深入研究,这些站点提供有关VB,VBA和Microsoft Office的Internet/XMLHTTPRequest特定材料的文档.
如果有帮助或者您有其他问题/想法,请告诉我
〜JOL