熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

學好基本功之熟練調用 Web Service

2013-11-13 09:55:12  來源: .NET編程 

  什麼是Web Services
  
  從表面上看Web service 就是一個應用程序它向外界暴露出一個能夠通過Web進行調用的API也就是說可以利用編程的方法通過Web來調用這個應用程序
  
  對Web service 更精確的解釋: Web services是建立可互操作的分布式應用程序的新平台Web service平台是一套標准它定義了應用程序如何在Web上實現互操作性你可以用任何你喜歡的語言在任何你喜歡的平台上寫Web service 只要我們可以通過Web service標准對這些服務進行查詢和訪問
  
  不管你的Web service是用什麼工具什麼語言寫出來的只要你用SOAP協議通過HTTP來調用它總體結構都一致通常你用你自己喜歡的語言(如VB 或者VBNET)來構建你的Web service然後用SOAP Toolkit或者NET的內建支持來把它暴露給Web客戶於是任何語言任何平台上的客戶都可以閱讀其WSDL文檔以調用這個Web service客戶根據WSDL描述文檔會生成一個SOAP請求消息Web service都是放在Web服務器 (如IIS) 後面的客戶生成的SOAP請求會被嵌入在一個HTTP POST請求中發送到Web服務器來Web服務器再把這些請求轉發給Web service請求處理器請求處理器的作用在於解析收到的SOAP請求調用Web service然後再生成相應的SOAP應答Web服務器得到SOAP應答後會再通過HTTP應答的方式把它送回到客戶端
  
  基本概念
  
  SOAP
  
  XML和XSD
  
  WSDL(Web Services Description Language)
  
  WSML(Web Services Meta Language)
  
  什麼時候使用Web Services
  
  Web service是創建可互操作的分布式應用程序的新平台Web service 的主要目標是跨平台的可互操作性為了達到這一目標Web service 是完全基於XMLXSD等獨立於平台獨立於軟件供應商的標准的
  
  Web service在應用程序跨平台和跨網絡進行通信的時候是非常有用的Web service適用於應用程序集成BB集成代碼和數據重用以及通過Web進行客戶端和服務器的通信的場合
  
  當然Web service也不是萬能的你不能到處濫用Web service在有些情況下Web service 會降低應用程序的性能而不會帶來任何好處例如一台機器或一個局域網裡面運行的同構應用程序就不應該用Web service 進行通信
  
  如何調用Web Services
  
  客戶端:取得服務端的服務描述文件WSDL解析該文件的內容了解服務端的服務信息以及調用方式根據需要生成恰當的SOAP請求消息(指定調用的方法已經調用的參數)發往服務端等待服務端返回的SOAP回應消息解析得到返回值
  
  服務端:生成服務描述文件以供客戶端獲取接收客戶端發來的SOAP請求消息解析其中的方法調用和參數格式根據WSDL和WSML的描述調用相應的COM對象來完成指定功能並把返回值放入SOAP回應消息返回給用戶
  
  高層接口
  
  使用高層接口不需要知道SOAP和XML的任何信息就可以生成和使用一個WebServiceSoap Toolkit 通過提供兩個COM對象――SoapClient和SoapServer來完成這些功能
  
  在客戶端只需要生成一個SoapClient實例並用WSDL作為參數來調用其中的mssoapinit方法SoapClient對象會自動解析WSDL文件並在內部生成所有Web Service的方法和參數信息之後你就可以像調用IDispatch接口裡的方法一樣調用裡面所有的方法在VB或是腳本語言裡你甚至可以直接在SoapClient對象名後面直接加上方法(參數…)進行調用
  
  低層接口
  
  要使用低層接口你必須對SOAP和XML有所了解你可以對SOAP的處理過程進行控制特別是要做特殊處理的時候
  
  在客戶端首先要創建一個HttpConnector對象負責HTTP連接設定Connector的一些頭部信息比如EndPoinURL和SoapAction等如果網絡連接需要使用代理服務器那也要在這裡設定相關的信息接著創建SoapSerializer對象用於生成Soap消息按照WSDL裡定義把所有參數按順序序列化得到一個完整的SOAP請求消息該Soap消息作為Payload通過HttpConnector被發送到服務端最後生成一個SoapReader對象負責讀取服務端返回的SOAP消息取得其中的返回值
From:http://tw.wingwit.com/Article/program/net/201311/11967.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.