iT邦幫忙

DAY 7
8

XML系列 第 7

[XML]07-使用網站案例(Web Service)

  • 分享至 

  • xImage
  •  

與前面介紹的RSS的差別之一是,Web Service提供了要求方使用「參數」的機制。
一講到Web Service,就好像投資理財一樣,每個人都可以講的頭頭是道,講他個三天三夜。在這裡我只想以最簡單的實例來說明,如果你期望從我口中說出「Web Service很重要、Web Service會改變世界、不用Web Service你們公司就會失去競爭力、就會倒」之類的話,那你可以轉頭離開了,因為我根本不相信這回事。

前面介紹的RSS或者台北市政府的案例,使用者都是「被動」地接收資料,而且是接收「由伺服器決定的」「全部」的資料。而在大多數的情境下,使用者比較希望能夠自己決定要查詢那些資料。

如果現在請你去查出一個IP的登記國家,你可能會用nslookup指令或是去TWNIC查,如果現在請你寫出一隻查詢IP的登記國家的程式,你可能會去找nslookup的API或是去TWNIC模擬HTML表單的動作進行查詢,然後再去剖析網頁並取得資料。

如果用Web Service的話,會是怎樣的情形呢?
首先,要找到一個提供IP查詢的Web Service,我找到了這個免費的GeoIP,接著呢,要製作提出查詢的Request Message如下圖所示,可以看出只傳了一個參數,就是IP

由於Web Service使用的是SOAP的通訊協定,接著使用支援SOAP的軟體,送出Request Message後,得到回覆如下,可以看出有CountryCode和CountryName,接著就可以拿這個資料去應用,看是要顯示在網頁上或是寫進資料庫。

從上面的範例可以看到傳送給伺服器的是XML型式的資料,回傳的也是XML型式的資料。

有一個重點是,你不必在乎也不必知道伺服器是什麼硬體什麼平台,用的是什麼資料庫,而我也沒有提到我是用什麼程式什麼軟體去產生、發送和接收Web Service的Request和Response(後面的章節會提到)。

這也是Web Service之所以採用XML型式,並獲得其平台獨立性的原因。

也許你想問,國內有沒有實際上線可用的Web Service?有的,這個WSDL(註)提供你用航站代碼(例:台北TSA、高雄KHH)查詢班機到離資訊,使用手冊在交通部運輸研究所有。

註:WSDL(Web Service Description Language)是用來描述所提供的Web Service有那些功能、如何使用、傳那些參數...的一種方式,其型式....還是XML。

本系列文章列表
Next : [XML]08-使用網站案例(AJAX)


上一篇
[XML]06-使用網站案例(台北市政府)
下一篇
[XML]08-使用網站案例(AJAX)
系列文
XML30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
krarm
iT邦好手 1 級 ‧ 2011-10-04 12:50:19

antijava提到:
所提供的Web Service有那些功能

我不會XML,想當然爾,也不會webservice,都直接用socket丟一丟交差。
說到這,我又想到一門課,網路通訊概論。

看更多先前的回應...收起先前的回應...

用socket也很不錯
只是「low」了點
忙

總裁 iT邦好手 1 級 ‧ 2011-10-04 13:53:41 檢舉

這兩個根本是不同層的東西,不能相提並論的。

雖然我不太懂,但是應該不同東西吧‧

cdfu提到:
這兩個根本是不同層的東西,不能相提並論的。

總裁講到關鍵字了
那七層圖一畫下來
socket是不是比Web Service「low」呢
吃

總裁 iT邦好手 1 級 ‧ 2011-10-04 15:55:09 檢舉

把第一層畫在最上面就不會了....(就是要硬ㄠ...)

krarm iT邦好手 1 級 ‧ 2011-10-04 21:05:22 檢舉

好啊,接下來好好來談談socket programming對一生的影響,
後來我至少五個專案用了berkeley socket

0
modernsarah
iT邦研究生 4 級 ‧ 2011-10-04 20:35:48

謝謝java大大的答覆,
我已經先手機報名成功啦,
還有大大的"本系列文章"招數, 是一定要學的啦~
哈哈

我要留言

立即登入留言