The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

          一、使用步驟:
                            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)
                                  %>

           


                            整個步驟很明顯:建立、打開、發送和接受。

          posted on 2010-05-26 17:18 Eric_jiang 閱讀(756) 評論(0)  編輯  收藏 所屬分類: ASP
          主站蜘蛛池模板: 新巴尔虎右旗| 柘城县| 拜城县| 富宁县| 博湖县| 盐源县| 罗源县| 镇远县| 高平市| 龙里县| 普陀区| 临邑县| 古田县| 安福县| 龙州县| 师宗县| 大邑县| 乌拉特后旗| 昌平区| 巴彦淖尔市| 海阳市| 莱芜市| 曲沃县| 山阴县| 张家川| 湾仔区| 嘉义市| 石渠县| 菏泽市| 大化| 丹江口市| 丹凤县| 东山县| 新源县| 仁化县| 克拉玛依市| 仙桃市| 镇坪县| 宁城县| 枣庄市| 石台县|