Melalui kaedah seperti Du Niang, saya secara peribadi memahaminya sebagai sabun yang menyamar protokol tambah proses xml Pemprosesan tunggal,
antara muka pengesahan dalam talian qq:
www.webxml.com.cn/webservices…
Antara muka lain yang boleh diuji:
e-mel Antara muka alamat e-mel: www.webxml.com.cn/WebServices…
Antara muka keadaan cuaca negara:
www.webxml.com.cn/WebServices…
Tambah selepas antara muka: /wsdl www.webxml.com.cn/webservices…
Akses ke. lihat dan cari definisi dalam rajah di bawah Kandungan: Beri perhatian kepada menggunakan kekunci yang berkaitan untuk mencari parameter yang diperlukan yang sepadan.
<!-- https://mvnrepository.com/artifact/org.apache.axis/axis --> <dependency> <groupId>org.apache.axis</groupId> <artifactId>axis</artifactId> <version>1.4</version> </dependency> <!-- https://mvnrepository.com/artifact/wsdl4j/wsdl4j --> <dependency> <groupId>wsdl4j</groupId> <artifactId>wsdl4j</artifactId> <version>1.6.2</version> </dependency> <!-- 解决cell 转换问题--> <!-- https://mvnrepository.com/artifact/javax.xml/jaxrpc-api --> <dependency> <groupId>javax.xml</groupId> <artifactId>jaxrpc-api</artifactId> <version>1.1</version> </dependency> <!-- 解析调用结果以及数据转换包--> <!-- https://mvnrepository.com/artifact/commons-discovery/commons-discovery --> <dependency> <groupId>commons-discovery</groupId> <artifactId>commons-discovery</artifactId> <version>0.2</version> </dependency>
@Test public void testWebService() { try { //wsdl地址 String endpoint = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx"; //命名空间 String namespace = "http://WebXml.com.cn/"; //服务名 String serviceName = "qqOnlineWebService"; //方法名 String methodName = "qqCheckOnline"; //soapAction String soapAction = "http://WebXml.com.cn/qqCheckOnline"; Service service = new Service(); Call call = (Call) service.createCall(); //设置响应超时 call.setTimeout(3000); //设置地址 call.setTargetEndpointAddress(new java.net.URL(endpoint)); //设置方法名 call.setOperationName(new QName(namespace, methodName)); //设置参数 call.addParameter(new QName(namespace, "qqCode") , org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN); //设置返回类型 call.setReturnType(XMLType.XSD_SCHEMA); //启用soap call.setUseSOAPAction(true); //设置soapAction call.setSOAPActionURI(soapAction); //设置服务名 SOAPService soapService = new SOAPService(); soapService.setName(serviceName); call.setSOAPService(soapService); Schema result = (Schema) call.invoke(new Object[]{"xxxxx"}); for (int i = 0; i < result.get_any().length; i++) { System.out.println(result.get_any()[i]); } } catch (Exception e) { log.error("ddd", e); } }
Mengenai kod di atas, izinkan saya mengadu di sini sebenarnya terdapat banyak contoh ini di Internet, tetapi masalah akan berlaku apabila benar-benar memanggilnya.
Dapatkan hasil
Atas ialah kandungan terperinci Cara SpringBoot menggunakan paksi untuk memanggil antara muka perkhidmatan web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!