溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

WebService-—調(diào)用第三方提供的webService服務(wù)

發(fā)布時(shí)間:2020-07-04 11:07:09 來(lái)源:網(wǎng)絡(luò) 閱讀:544 作者:lzf05303774 欄目:開(kāi)發(fā)技術(shù)

互聯(lián)網(wǎng)上面有很多的免費(fèi)webService服務(wù),我們可以調(diào)用這些免費(fèi)的WebService服務(wù),將一些其他網(wǎng)站的內(nèi)容信息集成到我們的Web應(yīng)用中顯示,下面就以獲取天氣預(yù)報(bào)數(shù)據(jù)和查詢國(guó)內(nèi)手機(jī)號(hào)碼歸屬地為例進(jìn)行說(shuō)明。

  氣象中心的管理系統(tǒng)將收集的天氣信息并將數(shù)據(jù)暴露出來(lái)(通過(guò)WebService Server), 而各大站點(diǎn)的應(yīng)用就去調(diào)用它們得到天氣信息并以不同的樣式去展示(WebService Client).

一、 調(diào)用免費(fèi)的web service獲取天氣預(yù)報(bào)信息

1.1、找到提供天氣預(yù)報(bào)信息的Webservice的網(wǎng)絡(luò)地址

  http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx 訪問(wèn)結(jié)果如下圖所示:

  WebService-—調(diào)用第三方提供的webService服務(wù)

  找到WebService的wsdl描述,通過(guò)URL地址http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl:如下:

  WebService-—調(diào)用第三方提供的webService服務(wù)

1.2、客戶端編碼方式訪問(wèn)第三方提供的webService服務(wù)

  1、借助wsimport命令工具自動(dòng)生成客戶端代碼

  創(chuàng)建一個(gè)測(cè)試項(xiàng)目,如下:

  WebService-—調(diào)用第三方提供的webService服務(wù)

  打開(kāi)命令行窗口,切換到項(xiàng)目的src目錄,執(zhí)行"wsimport -keep http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl"生成客戶端代碼,如下圖所示:

  WebService-—調(diào)用第三方提供的webService服務(wù)

  運(yùn)行結(jié)果顯示,使用wsimport工具直接生成客戶端代碼會(huì)拋異常, 無(wú)法生成客戶端代碼, 只是因?yàn)槲覀円{(diào)用的WebService是用.net寫(xiě)的,這個(gè)是Java調(diào)用net的webservice都有的問(wèn)題,這個(gè)問(wèn)題的解決辦法如下:

  1. 將對(duì)應(yīng)的wsdl文檔保存到本地

  WebService-—調(diào)用第三方提供的webService服務(wù)

  2、修改wsdl文檔的部分內(nèi)容: <s:element ref="s:schema" /><s:any /> 替換成 <s:any minOccurs="2" maxOccurs="2"/>

  WebService-—調(diào)用第三方提供的webService服務(wù)

  再次執(zhí)行wsimport生成代碼,這次使用保存在本地的WeatherWS.wsdl文件來(lái)進(jìn)行生成,如下圖所示:

  WebService-—調(diào)用第三方提供的webService服務(wù)

  從執(zhí)行結(jié)果顯示,這一次可以正常生成代碼了,刷新一下src目錄,就可以看到生成的代碼了,如下圖所示:

  WebService-—調(diào)用第三方提供的webService服務(wù)

2、借助生成的代碼編寫(xiě)請(qǐng)求代碼

WebService-—調(diào)用第三方提供的webService服務(wù)

 1 package me.gacl.ws.client; 2  3 import java.util.List; 4  5 import cn.com.webxml.ArrayOfString; 6 import cn.com.webxml.WeatherWS; 7 import cn.com.webxml.WeatherWSSoap; 8  9 public class WeatherWSClient {10 11     public static void main(String[] args) {12         //創(chuàng)建一個(gè)WeatherWS工廠13         WeatherWS factory = new WeatherWS();14         //根據(jù)工廠創(chuàng)建一個(gè)WeatherWSSoap對(duì)象15         WeatherWSSoap weatherWSSoap = factory.getWeatherWSSoap();16         //調(diào)用WebService提供的getWeather方法獲取南寧市的天氣預(yù)報(bào)情況17         ArrayOfString weatherInfo = weatherWSSoap.getWeather("南寧", null);18         List<String> lstWeatherInfo = weatherInfo.getString();19         //遍歷天氣預(yù)報(bào)信息20         for (String string : lstWeatherInfo) {21             System.out.println(string);22             System.out.println("------------------------");23         }24     }25 }

WebService-—調(diào)用第三方提供的webService服務(wù)

  訪問(wèn)結(jié)果如下:

WebService-—調(diào)用第三方提供的webService服務(wù)

廣西 南寧
------------------------
南寧
------------------------
2391
------------------------
2015/01/29 19:00:49
------------------------
今日天氣實(shí)況:暫無(wú)實(shí)況
------------------------
空氣質(zhì)量:暫無(wú);紫外線強(qiáng)度:最弱
------------------------
太陽(yáng)鏡指數(shù):不需要。白天光線弱不需要佩戴太陽(yáng)鏡。
穿衣指數(shù):較舒適。建議穿薄外套或牛仔褲等服裝。
旅游指數(shù):適宜。溫度適宜,可盡情享受大自然風(fēng)光。
運(yùn)動(dòng)指數(shù):較適宜。較適宜進(jìn)行各種戶內(nèi)外運(yùn)動(dòng)。
洗車指數(shù):不宜。有雨,雨水和泥水會(huì)弄臟愛(ài)車。
化妝指數(shù):保濕。請(qǐng)選用中性保濕型霜類化妝品。
感冒指數(shù):較易發(fā)。天較涼,增加衣服,注意防護(hù)。
空氣污染指數(shù):暫無(wú)。
紫外線指數(shù):最弱。輻射弱,涂擦SPF8-12防曬護(hù)膚品。
舒適度指數(shù):舒適。白天不冷不熱,風(fēng)力不大。

------------------------
1月29日 多云
------------------------
11℃/15℃
------------------------
東北風(fēng)微風(fēng)
------------------------
1.gif
------------------------
1.gif
------------------------
1月30日 小雨轉(zhuǎn)陰
------------------------
10℃/15℃
------------------------
東北風(fēng)微風(fēng)
------------------------
7.gif
------------------------
2.gif
------------------------
1月31日 多云
------------------------
11℃/13℃
------------------------
東北風(fēng)微風(fēng)
------------------------
1.gif
------------------------
1.gif
------------------------
2月1日 多云
------------------------
12℃/17℃
------------------------
東北風(fēng)微風(fēng)
------------------------
1.gif
------------------------
1.gif
------------------------
2月2日 陰轉(zhuǎn)多云
------------------------
13℃/18℃
------------------------
東北風(fēng)微風(fēng)
------------------------
2.gif
------------------------
1.gif
------------------------

WebService-—調(diào)用第三方提供的webService服務(wù)

  這樣,我們通過(guò)生成的Client代碼調(diào)用了第三方提供的webService服務(wù)獲取到了南寧市的天氣預(yù)報(bào)信息。

二、 調(diào)用免費(fèi)的web service查詢國(guó)內(nèi)手機(jī)號(hào)碼歸屬地

2.1、找到提供服務(wù)的Webservice的網(wǎng)絡(luò)地址

  http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx 如下所示:

  WebService-—調(diào)用第三方提供的webService服務(wù)

  找到WebService的wsdl描述信息,通過(guò)URL地址http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl:如下:

  WebService-—調(diào)用第三方提供的webService服務(wù)

2.2、編寫(xiě)客戶端訪問(wèn)調(diào)用WebService服務(wù)

1、創(chuàng)建客戶端項(xiàng)目

  WebService-—調(diào)用第三方提供的webService服務(wù)

2、根據(jù)WebService的wsdl描述生成客戶端代碼

  打開(kāi)命令行窗口,切換到Phone_Client的src目錄,執(zhí)行wsimport -keep http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl 如下圖所示:

  WebService-—調(diào)用第三方提供的webService服務(wù)

  這次可以直接使用wsdl生成代碼,不再需要將wsdl文件下載到本地進(jìn)行修改了,這個(gè)WebService應(yīng)該不是使用.net寫(xiě)的,生成的代碼如下:

  WebService-—調(diào)用第三方提供的webService服務(wù)

  3、借助生成的代碼編寫(xiě)請(qǐng)求代碼

WebService-—調(diào)用第三方提供的webService服務(wù)

 1 package me.gacl.ws.client; 2  3 import cn.com.webxml.MobileCodeWS; 4 import cn.com.webxml.MobileCodeWSSoap; 5  6 public class PhoneWsClient { 7  8     public static void main(String[] args) { 9         //創(chuàng)建一個(gè)MobileCodeWS工廠10         MobileCodeWS factory = new MobileCodeWS();11         //根據(jù)工廠創(chuàng)建一個(gè)MobileCodeWSSoap對(duì)象12         MobileCodeWSSoap mobileCodeWSSoap = factory.getMobileCodeWSSoap();13         ////調(diào)用WebService提供的getMobileCodeInfo方法查詢手機(jī)號(hào)碼的歸屬地14         String searchResult = mobileCodeWSSoap.getMobileCodeInfo("15177196635", null);15         System.out.println(searchResult);16     }17 }

WebService-—調(diào)用第三方提供的webService服務(wù)

  運(yùn)行結(jié)果如下:
  WebService-—調(diào)用第三方提供的webService服務(wù)

  這樣我們調(diào)用第三方提供的WebService服務(wù)成功查詢到了手機(jī)號(hào)碼的歸宿地。

  以上就是如何調(diào)用第三方WebService的相關(guān)內(nèi)容。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI