最近因為需要 所以來玩了一下WEBSERVICE
他就像是一個API一樣 你傳參數給他 他就會回傳你資料。
首先 先來看PHP的寫法
PHP的話 你必須要先在PHP.ini把php_soap.dll這個ext啟用才可以使用soap
你如果要使用webservice的話 你應該會有個像是
http://webservices.studyhost.com/ZipCodeWebService.asmx?op=GetAllAreaByCity
這樣的頁面
他會跟你說 你必須要傳
POST /ZipCodeWebService.asmx HTTP/1.1 Host: webservices.studyhost.com Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://tempuri.org/GetAllAreaByCity" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetAllAreaByCity xmlns="http://tempuri.org/"> <City>string</City> </GetAllAreaByCity> </soap:Body> </soap:Envelope>
給他
然後他就會回傳一個帶有資料的xml還你
php的語法就是
<?php $url = "http://webservices.studyhost.com/ZipCodeWebService.asmx?WSDL"; $client = new SoapClient($url); $result = $client->Report2( '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetAllAreaByCity xmlns="http://tempuri.org/"> <City>string</City> </GetAllAreaByCity> </soap:Body> </soap:Envelope>' ); $result = $client->Report2(array('City' => '台中市')); var_dump($result); echo $result->CelsiusToFahrenheitResult . "n"; ?>
這樣就可以了
註:php 要把extension=php_soap.dll 這個打開才行
VB.NET的話 倒是很不一樣的做法
首先你必須要先到工具列去 然後 加入WEB參考
(vs2013是在工具列->加入服務參考->進階->加入web參考這邊
URL就要打你的WEBSERVICE的URL 例如http://webservices.studyhost.com/ZipCodeWebService.asmx
你就會看到WEB參考會給你一個名稱 例如com.studyhost.webservices 而這個其實你是可以自由修改的
接下來就是程式碼的部分了
[CODE]
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
‘建立 Web Services
Dim ZipCode As New com.studyhost.webservices.WebService
Dim Cities As Array ‘儲存城市名稱用的陣列
Cities = ZipCode.GetAllAreaByCity(“台中市”) ‘從遠端取得所有的城市名稱
Me.ComboBox1.Items.Clear() ‘清空 ComboBox1
For i As Integer = LBound(Cities) To UBound(Cities) ‘填入 ComboBox1
Me.ComboBox1.Items.Add(Cities(i))
Next
End Sub
End Class
[/CODE]
像這樣就可以了,當然你必須要先在你的FORM上面先放置一個ComboBox1跟Button1 才行
其實很簡單不難,難在於找不到人稍微教你一下 或是像這樣的範例而已…