• MSXML2, XmlHttpClass基础


    Microsoft.XMLHTTP  Microsoft.XMLHttp组件的属性方法
    一、使用步骤:
    1、创建XMLHTTP对象 //需MSXML4.0支持 
    2、打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页。
    3、发送指令。
    4、等待并接收服务端返回的处理结果。
    5、释放XMLHTTP对象
    二、XMLHTTP方法:
    Open( bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword )
    bstrMethod: 数据传送方式,即GET或POST。
    bstrUrl: 服务网页的URL。
    varAsync: 是否同步执行。缺省为True,即同步执行,但只能在DOM中实施同步执行。用中一般将其置为False,即异步执行。
    bstrUser: 用户名,可省略。
    bstrPassword:用户口令,可省略。
    Send( varBody )
    varBody:指令集。可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。也可以省略,让指令通过Open方法的URL参数代入。
    setRequestHeader( bstrHeader, bstrvalue )
    bstrHeader:HTTP 头(header)
    bstrvalue: HTTP 头(header)的值
    如果Open方法定义为POST,可以定义表单方式上传:
    xmlhttp.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded")
    三、XMLHTTP属性:
    onreadystatechange:在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。
    responseBody: 结果返回为无符号整数数组。
    responseStream: 结果返回为IStream流。
    responseText : 结果返回为字符串。
    responseXML: 结果返回为XML格式数据。
    具体的使用方法
    创建XMLHTTP对象的语句如下:
    Set objXML = CreateObject("Msxml2.XMLHTTP") 或Set objXML = CreateObject("Microsoft.XMLHTTP")'Or for version 3.0 of XMLHTTP, use:'Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
    对象创建后调用Open方法对Request对象进行初始化,语法格式为:
    objXML.open http-method,url,async,userID,password
    Open方法中包含了5个参数,前三个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示:
    http-method:HTTP的通信方式,比如GET或是POST
    url:接收XML数据的服务器的URL地址。通常在URL中要指明ASP或CGI程序
    async:一个布尔标识,说明请求是否为异步的。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作
    userID:用户ID,用于服务器身份验证
    password:用户密码,用于服务器身份验证
    XMLHTTP对象的Send方法
    用Open方法对Request对象进行初始化后,调用Send方法发送XML数据:
    objXML.send()
    Send方法的参数类型是Variant,可以是字符串、DOM树或任意数据流。
    发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。
    XMLHTTP对象中的readyState属性其能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示:
    值 说明
    0 Response对象已经创建,但XML文档上载过程尚未结束
    1 XML文档已经装载完毕
    2 XML文档已经装载完毕,正在处理中
    3 部分XML文档已经解析
    4 文档已经解析完毕,客户端可以接受返回消息
    客户机处理响应信息,客户机接收到返回消息后,进行简单的处理,基本上就完成了C/S之间的一个交互周期。
    客户机接收响应是通过XMLHTTP对象的属性实现的:
    responseText:将返回消息作为文本字符串;
    responseBody:将返回消息作为HTML文档内容;
    responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用;
    responseStream:将返回消息视为Stream对象
    以下是一个简单的例子:类似新闻小偷
    <%
    Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
    objXML.open "GET","http://www.alexa.com",false/
    objXML.send()
    response.write(objXML.responseText)
    %>

     

    长整形标准http状态码,定义如下:

    NumberDescription

    100

    Continue

    101

    Switching protocols

    200

    OK

    201

    Created

    202

    Accepted

    203

    Non-Authoritative Information

    204

    No Content

    205

    Reset Content

    206

    Partial Content

    300

    Multiple Choices

    301

    Moved Permanently

    302

    Found

    303

    See Other

    304

    Not Modified

    305

    Use Proxy

    307

    Temporary Redirect

    400

    Bad Request

    401

    Unauthorized

    402

    Payment Required

    403

    Forbidden

    404

    Not Found

    405

    Method Not Allowed

    406

    Not Acceptable

    407

    Proxy Authentication Required

    408

    Request Timeout

    409

    Conflict

    410

    Gone

    411

    Length Required

    412

    Precondition Failed

    413

    Request Entity Too Large

    414

    Request-URI Too Long

    415

    Unsupported Media Type

    416

    Requested Range Not Suitable

    417

    Expectation Failed

    500

    Internal Server Error

    501

    Not Implemented

    502

    Bad Gateway

    503

    Service Unavailable

    504

    Gateway Timeout

    505

    HTTP Version Not Supported

  • 相关阅读:
    .net remoting 事件调用循环处理中重复返回的问题.
    MySQL5.7.29winx64解压缩版安装
    IntelliJ IDEA下SVN的配置及使用说明
    navicat12.0.26如何激活
    sql优化的几种方式
    mysql导入文件出现Data truncated for column 'xxx' at row 1的原因
    MessageFormat.format()用法
    idea提交svn不显示新建文件
    后端Long类型传到前端精度丢失的正确解决方式
    在IDEA中的cannot_resolve_method解决方法
  • 原文地址:https://www.cnblogs.com/top5/p/2268687.html
Copyright © 2020-2023  润新知