zoukankan      html  css  js  c++  java
  • 转载 Msxml2.ServerXMLHTTP与Msxml2.XMLHTTP区别

    1.ServerXmlHttp

    定义:ServerXMLHTTP 为不同 Web 服务器之间的服务器安全 HTTP 访问提供方法和属性。您可以使用此对象在不同的 Web 服务器之间交换 XML 数据。

    被Microsoft XML Parser (MSXML) 版本 3.0 或更高版本提供,并且不支持windows95和windows98环境,支持windows2000,安装ie5的windows NT,windows2003以上版本,windows xp,vista等等系统。顾名思义他是使用在server端的组建。

    SSL支持:

    ServerXMLHTTP 组件在 MSXML3 中对 HTTPS 的支持比较有限。具体说就是,它们不完全支持用于身份验证的安全套接字层 (SSL) 证书。这些组件虽然支持 HTTPS 协议,但如果服务器要求客户端证书,请求将会失败。
      ServerXMLHTTP 在 MSXML 3.0 Service Pack 1 中包括了 SSL 证书支持。

    优点:

    通过使用 ServerXMLHTTP,可以在本地和远程系统之间以流或 XML 文档的形式交换 XML 数据;由于基础协议为 HTTP 或 HTTPS,因此可以在防火墙后的系统之间交换数据;ServerXMLHTTP 可用于从不同的环境(如 Active Server Pages (ASP)、Microsoft Visual Basic 和 Microsoft Visual C++)发送 HTTP 请求。

    缺陷:

    同时存在于单一进程中的 ServerXMLHTTP 实例数主要取决于可用于系统上应用程序的内存大小。但是其他因素(如 CPU 处理能力或者可用的套接字连接)会进一步限制可以同时处于活动状态的实例数。就MSXML 3.0 而言,可同时存在于单一进程中的最大实例数为5460。

    值得注意的特性----一小时超时:

    如果你的目标url实际上不存在,使用浏览器访问的时候会发生“找不到服务器或是发生dns错误”那么使用serverxmlhttp访问的时候可能会遇到长时间得不到response。

    解决方案--设置超时时间

    resolveTimeout = 10000   ‘ 解析DNS名字的超时时间,10秒

    connectTimeout = 10000    ‘ 建立Winsock连接的超时时间,10秒

    sendTimeout = 120000     ‘ 发送数据的超时时间,120秒

    receiveTimeout = 60000     ' 接收response的超时时间,60秒

    xmlHttp.setTimeouts resolveTimeout, connectTimeout, sendTimeout, receiveTimeout

    For Example:
      BeginTimer = Timer()
      BeiginTime = Now()
      On error resume next
      dim xmlHttp As ServerXmlHttp
      Set xmlHttp = New  ServerXmlHttp
      resolveTimeout = 10000   ' 解析DNS名字的超时时间,10秒
      connectTimeout = 10000    ' 建立Winsock连接的超时时间,10秒
      sendTimeout = 120000     ' 发送数据的超时时间,120秒
      receiveTimeout = 60000     ' 接收response的超时时间,60秒
      'xmlHttp.setTimeouts resolveTimeout, connectTimeout, sendTimeout,
      receiveTimeout
      uRL ="http://202.118.89.4:4090/2333.asp"
      xmlHttp.Open "POST", sURL, False
      xmlHttp.send "1212312"EndTimer = Timer()
      TimeSpan_Send = EndTimer - BeginTimer
     
      EndTime = Now()
      msgbox  uRL & " okay!TimeSpan=" & CStr(TimeSpan_Send) & ";start:" & BeiginTime & ";EndTime:" & EndTime
     
      2.XMLHttp

    与ServerXmlHttp相对应他是使用在client端的组建,由于 XMLHTTP 内部使用 WinInet,所以不支持在服务器端应用程序(例如 Active Server Pages (ASP))、宿主在 COM+ 中的组件,或 Windows 服务中使用 XMLHTTP。

    优点:

    XMLHTTP 具有一些优点,如支持缓存和自动发现代理。它可以在 Windows 95 和 Windows 98 平台上使用,并且非常适合单用户桌面应用程序。

    支持SSL:

    XMLHTTP 组件在 MSXML3 中对 HTTPS 的支持比较有限。具体说就是,它们不完全支持用于身份验证的安全套接字层 (SSL) 证书。这些组件虽然支持 HTTPS 协议,但如果服务器要求客户端证书,请求将会失败。

    3.ServerXmlHttp和XmlHttp的区别

    XMLHTTP 为客户端应用程序而设计,并依赖于基于 Microsoft Win32 Internet (WinInet) 而构建的 URLMon。ServerXMLHTTP 为服务器应用程序而设计,并依赖于新的 HTTP 客户端堆栈 WinHTTP。ServerXMLHTTP 提供了可靠性和安全性,并且是服务器安全的。

     
    转载地址:http://blog.sina.com.cn/s/blog_5067ef490101hm61.html
     
    发布一个自己写的ASP POST
     
    Function   Post(url)

    Dim  postData,textResponse

    postData="user=xxxx&password=******"

    Set ServerXmlHttp =Server.CreateObject("MSXML2.ServerXMLHTTP")  
    ServerXmlHttp.open "POST", url ,false
    'ServerXmlHttp.setTimeouts 10000,10000,10000,30000
    ServerXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    ServerXmlHttp.send postData

    If ServerXmlHttp.status = 200 Then
        textResponse = ServerXmlHttp.responseText
       Else
        textResponse="0"
    End If

    Set ServerXmlHttp = Nothing
    End Function
     
     
     
     
     
     
  • 相关阅读:
    HDU 2066 一个人的旅行 最短路问题
    HDU 2112 HDU Today 最短路
    HDU 2521 反素数 模拟题
    mac 安装 office
    selenium用法 (python)
    selenium遇到不可编辑input和隐藏input如何赋值
    mac 下bash命令
    ssh 自动登录
    linux常用命令
    json字符串调整
  • 原文地址:https://www.cnblogs.com/wonderfuly/p/3278974.html
Copyright © 2011-2022 走看看