java 對webservice 的基本呼叫及常見問題的解決方案
阿新 • • 發佈:2018-11-11
要用webservice,可以有很多技術,我比較常用的事xfire。
不要太複雜,直接貼程式碼,如下:
String url = "http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl";
Client client = new Client(new URL(url));
Object[] results = client.invoke("getCountryCityByIp", new Object[] {"27.17.43.14"});
第一步:獲取wsdl地址,網路上有好多免費的地址可以自行搜尋。
然後就可以通過client以及具體的引數獲取相應的資訊。
本次例項為通過ip獲取所在地的webservice。引數為:getCountryCityByIp=27.17.43.14
如果報錯且為:伺服器無法處理請求。 ---> 未將物件引用設定到物件的例項。
則表示介面有問題或者是方法及引數不對。
如果在獲取返回值時候獲取到的結果為:[#document: null]
原因是獲取到的資料是Document 型別的,那就需要下面的程式碼來分析資料。
首先通過訪問url可以發現,返回值是放在getCountryCityByIpResult中的
程式碼如下:
Document d = (Document)results[0]; NodeList node = d.getElementsByTagName("getCountryCityByIpResult");//此處可獲取所有節點迴圈。 NodeList n1 = node.item(0).getChildNodes(); for (int i=0;i<n1.getLength();i++){ Node n = n1.item(i); System.out.println(n.getNodeName()+"-->"+n.getFirstChild().getNodeValue()); }
demo下載地址(包含xfire的引用jar):
https://download.csdn.net/download/u011561335/10284632
如有遺漏,請留言