最新的Web開發教程
 

XML網頁服務


Web服務是Web應用程序組件。

Web服務可以發布,發現,並在網絡上使用。

本教程將介紹WSDL,SOAP,RDF和RSS。


WSDL

  • WSDL是Web服務描述語言
  • WSDL是用於描述Web服務的基於XML的語言。
  • WSDL是W3C推薦

肥皂

  • SOAP代表簡單對象訪問協議
  • SOAP是用於訪問網絡服務的基於XML的協議。
  • SOAP是基於XML的
  • SOAP是一種W3C推薦

RDF

  • RDF是資源描述框架
  • RDF是用於描述在網絡上的資源的框架
  • RDF是XML編寫
  • RDF是W3C推薦

RSS

  • RSS代表真正簡單的整合
  • RSS允許你辛迪加網站內容
  • RSS定義了一個簡單的方法來共享和查看標題和內容
  • RSS文件可以自動更新
  • RSS允許不同的站點個性化視圖
  • RSS是XML編寫

你應該已經知道

之前學過的Web服務,你應該對XML和XML命名空間的一個基本的了解。

如果你想先學習這些項目,請閱讀我們的XML教程


網頁服務

  • Web服務是應用程序組件
  • Web服務通信使用開放協議
  • Web服務是自包含的,自描述
  • Web服務可以使用UDDI發現
  • Web服務可以由其他應用程序使用
  • HTTP和XML是用於Web服務的基礎

互操作的優先級最高

當所有主要的平台可以用Web瀏覽器訪問Web,不同的平台不能進行交互。 對於這些平台協同工作,Web的應用程序的開發工作。

Web的應用程序都僅僅是在網絡上運行的應用程序。 這些圍繞在Web瀏覽器標準建造並可以通過任何平台上的任何瀏覽器一起使用。


Web服務需要Web的應用程序到新的水平

通過使用Web服務,應用程序可以發布它的功能或消息到世界各地。

Web服務使用XML來編碼和解碼數據,以及SOAP傳輸它(using open protocols)

隨著Web服務,您的會計部門的贏2K服務器的計費系統可以與IT供應商的UNIX服務器進行連接。


Web服務已經使用兩種類型

Reusable application-components.

有些事情的應用程序需要非常頻繁。 那麼,為什麼讓這些一遍又一遍?

Web服務可以提供應用程序組件,如:貨幣兌換,天氣預報,甚至語言翻譯為服務。

Connect existing software.

Web服務可以幫助通過給不同的應用程序的方式來鏈接它們的數據以解決互操作性問題。

隨著Web服務可以交換不同的應用和不同平台之間的數據。

任何應用程序可以有一個Web服務組件。

Web服務可以不考慮編程語言創建的。


一個Web服務示例

在下面的例子中,我們將使用ASP.NET創建溫度華氏轉換為攝氏一個簡單的Web服務,反之亦然:

<%@ WebService Language="VBScript" Class="TempConvert" %>

Imports System
Imports System.Web.Services

Public Class TempConvert :Inherits WebService

<WebMethod()> Public Function FahrenheitToCelsius
(ByVal Fahrenheit As String) As String
  dim fahr
  fahr=trim(replace(Fahrenheit,",","."))
  if fahr="" or IsNumeric(fahr)=false then return "Error"
  return ((((fahr) - 32) / 9) * 5)
end function

<WebMethod()> Public Function CelsiusToFahrenheit
(ByVal Celsius As String) As String
  dim cel
  cel=trim(replace(Celsius,",","."))
  if cel="" or IsNumeric(cel)=false then return "Error"
  return ((((cel) * 9) / 5) + 32)
end function

end class

該文件保存為一個.asmx文件。 這是XML Web服務的ASP.NET文件擴展名。


例子解釋:

Note:要運行這個例子,你將需要一個.NET服務器。

在本例中的第一行指出,這是一個Web服務,用VBScript編寫的,並具有類名"TempConvert"

<%@ WebService Language="VBScript" Class="TempConvert" %>

下一行導入命名空間"System.Web.Services"從.NET框架:

Imports System
Imports System.Web.Services

下一行定義了"TempConvert"類是WebService類類型:

Public Class TempConvert :Inherits WebService

接下來的步驟是基本的VB編程。 本申請中有兩個功能。 一個從華氏轉換為攝氏溫度,和一個從攝氏轉換為華氏。

從一個普通的應用程序,唯一的區別是,此功能被定義為一個"WebMethod()

使用"WebMethod()將函數轉換您的應用程序到Web服務:

<WebMethod()> Public Function FahrenheitToCelsius
(ByVal Fahrenheit As String) As String
  dim fahr
  fahr=trim(replace(Fahrenheit,",","."))
  if fahr="" or IsNumeric(fahr)=false then return "Error"
  return ((((fahr) - 32) / 9) * 5)
end function

<WebMethod()> Public Function CelsiusToFahrenheit
(ByVal Celsius As String) As String
  dim cel
  cel=trim(replace(Celsius,",","."))
  if cel="" or IsNumeric(cel)=false then return "Error"
  return ((((cel) * 9) / 5) + 32)
end function

然後,結束等級:

end class

發布使用.NET支持的服務器上.asmx文件,你將有你的第一個工作的Web服務。

看看我們的示例Web服務


ASP.NET自動執行過程

使用ASP.NET,你不必寫自己的WSDL和SOAP文檔。

如果你看看我們的示例Web服務近,你會看到ASP.NET已經自動創建WSDLSOAP請求。

使用Web服務示例

在前面的頁面中,我們創建了一個Web服務

FahrenheitToCelsius()函數可以在這裡進行測試: FahrenheitToCelsius

CelsiusToFahrenheit()函數可以在這裡進行測試: CelsiusToFahrenheit

這些功能將發送類似這樣的XML響應:

<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">38</string>

把Web服務在您的網站

使用形式和HTTP POST方法,你可以把Web服務在您的網站,像這樣:

華氏溫度為攝氏:

攝氏華氏:

怎麼做

這裡是Web服務添加到Web頁面的代碼:

<form action='tempconvert.asmx/FahrenheitToCelsius'
method="post" target="_blank">
<table>
  <tr>
    <td>Fahrenheit to Celsius:</td>
    <td>
    <input class="frmInput" type="text" size="30" name="Fahrenheit">
    </td>
  </tr>
  <tr>
    <td></td>
    <td align="right">
     <input type="submit" value="Submit" class="button">
     </td>
  </tr>
</table>
</form>

<form action='tempconvert.asmx/CelsiusToFahrenheit'
method="post" target="_blank">
<table>
  <tr>
    <td>Celsius to Fahrenheit:</td>
    <td>
    <input class="frmInput" type="text" size="30" name="Celsius">
    </td>
  </tr>
  <tr>
    <td></td>
    <td align="right">
    <input type="submit" value="Submit" class="button">
    </td>
  </tr>
</table>
</form>

替代"tempconvert.asmx"與Web服務一樣的地址:

http://www.example.com/xml/tempconvert.asmx