Google,baidu,等等...不鳥他們!!! 我要用自己開發的分布式文件系統、分布式調度系統、分布式檢索系統,做自己的搜索引擎!!!大魚有大志!!! ---楊書童
type map文件用于指定SOAP/XML中的類型與C/C++之間的轉換規則,比如在wsmap.dat里寫
那么SOAP/XML中的string將轉換成std::wstring或wchar_t*,這樣能更好地支持中文。
例:
從http://www.ayandy.com/Service.asmx?WSDL 生成ayandy.h文件,名空間為ay,使用wsmap.dat指定的轉換規則。
wsdl2h生成的頭文件里的變量、類型等名稱的前面都會加上名空間前綴,以兩個下劃線分隔。如上面的命令生成的頭文件,有這樣的定義:
前面的ayandy1__的是名空間前綴,用以防止名稱沖突。 wsdl2h的-n選項可以改變這個名空間前綴(默認為ns)。對于枚舉ay1__theDayFlagEnum內 的成員,如果嫌它太長的話,可以用-e命令選項禁止加入名空間前綴。
編寫SOAP程序除了頭文件是不夠的,還要有連接、通信、XML解析、序列/反序列化等工作。gSOAP提供的socapcpp2.exe就 是用于從頭文件中生成這些代碼的,我們只要關心真正的業務邏輯就行了。
編寫SOAP客戶端下面將演示使用gSOAP到網上取得天氣預報,互聯網上有不少網站提供SOAP服務,比如Google提供的搜索API(現在已不再提 供新的License Key了),不少博客提供的API等。這里介紹一個提供天氣預報服務的SOAP服務,地址是http://www.ayandy.com它提供了三個函數:getSupportCity 查詢本天氣WebService支持的城市信息。 getSupportProvince 查詢本天氣 WebService支持的省份信息。 getWeatherbyCityName 根據城市名稱獲得天 氣情況。 它的WSDL地址是http://www.ayandy.com/Service.asmx?WSDL現在,我們編寫一個客戶端去調用getWeatherbyCityName來 取得天氣情況1. 從WSDL得到頭文件
Copyright Copyright 楊書童