Java 使用Axis調(diào)用WebService的示例代碼
import org.apache.axis.client.Call; import org.apache.axis.client.Service; /** * @ClassName: TestAxis * @Description: TODO(描述這個(gè)類(lèi)的作用) * @author huc * */ public class TestAxis { public static void main(String []args){ String inConditions = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><ROWS><INFO><SBM>*</SBM></INFO><ROW><GMSFHM>公民身份號(hào)碼</GMSFHM><XM>姓名</XM></ROW><ROW><GMSFHM>110101******</GMSFHM><XM>李聞</XM><FSD>100600</FSD><YWLX>個(gè)人貸款</YWLX></ROW><ROW><GMSFHM>3624221952123***</GMSFHM><XM>李一聞</XM><FSD>100600</FSD><YWLX>個(gè)人貸款</YWLX></ROW><ROW><GMSFHM>1234********</GMSFHM><XM>王龍</XM><FSD>100600</FSD><YWLX>銀行開(kāi)戶(hù)</YWLX></ROW><ROW><GMSFHM>110101******</GMSFHM><XM></XM><FSD>100600</FSD><YWLX>個(gè)人車(chē)貸</YWLX></ROW><ROW><GMSFHM>110101******</GMSFHM><XM></XM><FSD>100600</FSD><YWLX></YWLX></ROW><ROW><GMSFHM>230602***</GMSFHM><XM></XM><FSD>100600</FSD><YWLX>個(gè)人車(chē)貸</YWLX></ROW></ROWS>"; String inLicense = "********"; try{ //調(diào)用webservice地址 String url = "https://www.****.com/services/NciicServices"; //如果url地址中有中文參數(shù),要注意應(yīng)單獨(dú)將中文部分進(jìn)行編碼操作后再與URL字符串拼接到一起,編碼方式為:URLEncoder.encode("中文部分", "utf-8"); //調(diào)用方法名 String method="nciicCheck"; Service service = new Service(); //通過(guò)service創(chuàng)建call對(duì)象 Call call = (Call) service.createCall(); //call.setSOAPVersion(SOAPConstants.SOAP12_CONSTANTS); 設(shè)置soap12協(xié)議方式調(diào)用 //設(shè)置服務(wù)地址 call.setTargetEndpointAddress(new java.net.URL(url)); //設(shè)置調(diào)用方法 call.setOperationName(method); call.setUseSOAPAction(true); //添加方法的參數(shù),有幾個(gè)添加幾個(gè) //inLicense是參數(shù)名,XSD_STRING是參數(shù)類(lèi)型,IN代表傳入 call.addParameter("inLicense", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); call.addParameter("inConditions", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); //帶命名空間的寫(xiě)法 //call.setOperationName(new QName("http://bussiness.***.com", "callPT")); //call.addParameter(new QName("http://bussiness.***.com","xmlData"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); //call.addParameter(new QName("http://bussiness.***.com","methodName"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); //設(shè)置返回類(lèi)型 call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); //解決錯(cuò)誤:服務(wù)器未能識(shí)別 HTTP 頭 SOAPAction 的值 call.setUseSOAPAction(true); call.setSOAPActionURI(targetNamespace + operationName); Object ret= null; try{ //使用invoke調(diào)用方法,Object數(shù)據(jù)放傳入的參數(shù)值 ret = call.invoke(new Object[] {inLicense,inConditions}); }catch(Exception e){ e.printStackTrace(); } //輸出SOAP請(qǐng)求報(bào)文 System.out.println("--SOAP Request: " + call.getMessageContext().getRequestMessage().getSOAPPartAsString()); //輸出SOAP返回報(bào)文 System.out.println("--SOAP Response: " + call.getResponseMessage().getSOAPPartAsString()); //輸出返回信息 System.out.println("result==="+ret.toString()); }catch(Exception e){ e.printStackTrace(); } } }
下面是輸出結(jié)果信息:
--SOAP Request: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><nciicCheck soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><inLicense xsi:type="xsd:string">*****</inLicense><inConditions xsi:type="xsd:string">*****</inConditions></nciicCheck></soapenv:Body></soapenv:Envelope> --SOAP Response: <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:nciicCheckResponse xmlns:ns1="https://api.nciic.org.cn/NciicServices"><ns1:out><?xml version="1.0" encoding="UTF-8"?> <RESPONSE errorcode="-72" code="0" countrows="1"><ROWS><ROW><ErrorCode>-72</ErrorCode><ErrorMsg>IP地址受限</ErrorMsg></ROW></ROWS></RESPONSE></ns1:out></ns1:nciicCheckResponse></soap:Body></soap:Envelope> result===<?xml version="1.0" encoding="UTF-8"?> <RESPONSE errorcode="-72" code="0" countrows="1"><ROWS><ROW><ErrorCode>-72</ErrorCode><ErrorMsg>IP地址受限</ErrorMsg></ROW></ROWS></RESPONSE>
以上就是Java 使用Axis調(diào)用WebService的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Java 使用Axis調(diào)用WebService的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Springboot詳細(xì)講解循環(huán)依賴(lài)
最近在使用Springboot做項(xiàng)目的時(shí)候,遇到了一個(gè)循環(huán)依賴(lài)的問(wèn)題,所以下面這篇文章主要給大家介紹了關(guān)于springboot循環(huán)依賴(lài)實(shí)現(xiàn)以及分析的相關(guān)資料,需要的朋友可以參考下2022-06-06Java集合Map常見(jiàn)問(wèn)題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)整理了Java集合Map常見(jiàn)問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05關(guān)于jar包與war包的區(qū)別及說(shuō)明
這篇文章主要介紹了關(guān)于jar包與war包的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05SpringBoot集成elasticsearch使用圖文詳解
Spring Boot集成Elasticsearch其實(shí)非常簡(jiǎn)單,這篇文章主要給大家介紹了關(guān)于SpringBoot集成elasticsearch使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04Java實(shí)現(xiàn)多個(gè)sheet頁(yè)數(shù)據(jù)導(dǎo)出功能
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)多個(gè)sheet頁(yè)數(shù)據(jù)導(dǎo)出功能的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03Spring Boot項(xiàng)目實(shí)戰(zhàn)之?dāng)r截器與過(guò)濾器
這篇文章主要介紹了Spring Boot項(xiàng)目實(shí)戰(zhàn)之?dāng)r截器與過(guò)濾器,文中給大家詳細(xì)介紹了springboot 攔截器和過(guò)濾器的基本概念,過(guò)濾器的配置,需要的朋友可以參考下2018-01-01java web中使用cookie記住用戶(hù)的賬號(hào)和密碼
這篇文章主要介紹了java web中使用cookie記住用戶(hù)的賬號(hào)和密碼的相關(guān)資料,需要的朋友可以參考下2017-01-01