如果你的webService 地址直接类似于(天气预报:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx)这样的:
点击你要解析的方法,进入如下:
然后使用HttpClient 解析webService :
package com.example.util; import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import java.util.List; /** * Created by xjw on 2017/6/29. */ public class WebServiceUtil { private static Logger log = LoggerFactory.getLogger("webServiceUtil-log"); private static int socketTimeOut = 30000;//请求超时时间 private static int connectTimeOut = 30000;//传输超时时间 public static void main(String[] args){ String storeInfoUrl = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx"; String contentType = "text/xml; charset=utf-8";//soap1.1 的conetentType String soapAction = "http://WebXml.com.cn/getSupportCity"; // String soapAction =""; // String contentType = "application/soap+xml; charset=utf-8"; //soap1.2 的conetentType String ProvinceName = "上海"; String soapXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" + " <soap:Body>\n" + " <getSupportCity xmlns=\"http://WebXml.com.cn/\">\n" + " <byProvinceName>"+ProvinceName+"</byProvinceName>\n" + " </getSupportCity>\n" + " </soap:Body>\n" + "</soap:Envelope>"; InputStream input = WebServiceUtil.soap(storeInfoUrl, soapXml, soapAction, contentType); //下面是解析 返回的 XML SAXReader saxReader = new SAXReader(); Document document = null; try { document = saxReader.read(input); Element root = document.getRootElement(); Dom4jUtils.getNodes(root); Element body = root.element("Body"); Element getSupportCityResponse = body.element("getSupportCityResponse"); Element getSupportCityResult = getSupportCityResponse.element("getSupportCityResult"); List<Element> strings = getSupportCityResult.elements(); for(Element e : strings){ System.out.println(e.getTextTrim()); } } catch (DocumentException e) { e.printStackTrace(); } } public static InputStream soap(String url,String soapXml,String soapAction,String ContentType) { InputStream soapResponseData = null; // 创建HttpClientBuilder HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); // HttpClient CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); HttpPost httpPost = new HttpPost(url); //设置请求超时时间 和 传输超时时间 RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(socketTimeOut) .setConnectTimeout(connectTimeOut).build(); httpPost.setConfig(requestConfig); httpPost.setHeader("Content-Type",ContentType); httpPost.setHeader("SOAPAction",soapAction); StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); httpPost.setEntity(data); CloseableHttpResponse response = null; try { response = closeableHttpClient.execute(httpPost); HttpEntity httpEntity = response.getEntity(); if (httpEntity !=null){ //打印响应内容 byte[] bytes = EntityUtils.toByteArray(httpEntity); soapResponseData =new ByteArrayInputStream(bytes); log.info("---请求webService之后的返回值是----"+new String(bytes)); } } catch (IOException e) { e.printStackTrace(); }finally { try { closeableHttpClient.close(); } catch (IOException e) { e.printStackTrace(); } } return soapResponseData; } }
如果 接口地址是 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl 带 ?wsdl
需要使用 soapUI 等工具:
SoapUI工具下载地址:链接:http://pan.baidu.com/s/1hrAyDaG 密码:ah3m
然后后面的的解析和上面的一样。
相关推荐
(完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc
httpc是使用HTTP作为通信协议的TCP套接字编程实现的客户端库。 它是一个类似于curl / telnet的HTTP库,用于演示GET,POST和HEAD功能(HTTP)。 下面介绍了最终命令行的选项。 httpc(get | post)[-v](-h“ k:v”...
mio_httpc是仅在mio之上运行的异步http客户端。 ... 除了CallBuilder :: exec以外,任何呼叫都不会阻塞,即使是DNS解析也不会阻塞,因为它是在内部实现的以避免阻塞。 为了使https工作,mio_httpc...mio_httpc使用默认的
它具有的特色包括:简单易用、易于扩展、支持链式调用、支持多种请求和响应格式的处理等。
httpc http客户端包装
STM32F103RC 驱动W5500,HTTP请求方式下载文件的测试代码,仅供参考。
JDK 11+ Java Http Client的轻量级包装 添加了用于请求构造URL和有效负载的流畅API 使用Jackson或Gson添加请求和响应的JSON编组/解组 添加请求/响应日志 相依性 < groupId>io.avaje < artifactId>avaje-...
httpc 绑定到Erlang的内置HTTP客户端httpc 。 import gleam / httpc import gleam / http.{Get} import gleam / should pub fn main () { // Prepare a HTTP request record let req = http. default_req () | ...
一个实例,帮助刚学习网络协议的同学.http实例教程http实例教程http实例教程
HTTPClientApplication 学生 威廉·安德鲁·路西尔(40033412) 安东尼·勒(40001837) 我如何运行(威廉) Maven包 Httpfs CD目标 java -jar Httpfs.jar -v -d /home/... 示例: java -jar Httpc.jar GET -
使用Java的声明性网站抓取库/框架。 使用Jaunt。 基础图书馆 。 主引擎。 TBD: + 用于需要JavaScript支持的高级用例。 待定: 。 对于更简单的用例,jSoup可能就足够了。 计划的输出格式和数据库 JSON (待办...
锈-httpc 一个 http 客户端库。 工程进行中。 概念证明。 代码需要清理。 支持以下: HTTP/1.0 基础 HTTP/1.1(部分) HTTP 方法:GET/POST/PUT ... HTTP 标头(设置/获取) HTTP 分块传输编码 简单的 ...
COMP445 网络类设置进入根目录mkdir bin 光盘进入src javac -d ../bin Httpc.java测试中在src文件夹中java -cp ../bin Httpc help java -cp ../bin Httpc get -ha:b -hc:d 'http://httpbin.org/get' java -cp ../bin...
c++ 实现了一个简单的http服务器,系统包括一个服务端,一个客户端,演示了HTTP协议应用
STM32+LWIP+OS http下载文件C语言实现,可以实现文件下载。
STM32F4+UCOSIII+discovery开发板 官方例程
LINUX C 下HTTP处理函数的POST以及GET的处理接口实现方法
此为阿里云MQTT协议移植SDK,版本号3.2,可实现通过MQTT对接阿里云服务器功能,包含代码示例
ctr-httpwn, 3DS HTTP sysmodule漏洞,用于绕过所需的sysupdates 这是一个只针对 3DS http sysmodule的用户名。 从服务器下载的配置允许你绕过所需的sysupdate错误。 这适用于以下内容: 这允许你访问已知的系统版本...