如果你的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
然后后面的的解析和上面的一样。
相关推荐
1. JAVA HttpClient库的使用 2. HTTPS协议的使用 3. SSL/TLS证书的使用 4. X509TrustManager的使用 5. DefaultHttpClient类的使用 6. HttpClient的自定义 7. POST请求的发送 8. 请求头和请求体的指定 9. HTTPS服务器...
client := httpc.NewClient() response, err := client.Get("http://example.com").Execute() ``` 在这个例子中,`NewClient()`创建了一个新的客户端实例,`Get("http://example.com")`设置了请求方法和URL,最后`...
httpc是使用HTTP作为通信协议的TCP套接字编程实现的客户端库。 它是一个类似于curl / telnet的HTTP库,用于演示GET,POST和HEAD功能(HTTP)。 下面介绍了最终命令行的选项。 httpc(get | post)[-v](-h“ k:v”...
2. **超时控制**:HTTPC可能提供了更高级的超时控制机制,不仅包括请求的整体超时,还可以设置每个部分(如DNS解析、TCP连接、读取响应头和主体等)的单独超时,确保应用在长时间无响应时能够快速恢复。 3. **自动...
mio_httpc是仅在mio之上运行的异步http客户端。 ... 除了CallBuilder :: exec以外,任何呼叫都不会阻塞,即使是DNS解析也不会阻塞,因为它是在内部实现的以避免阻塞。 为了使https工作,mio_httpc...mio_httpc使用默认的
5. 文件保存:STM32F103RC解析响应,确认文件大小和接收状态,然后将文件内容保存到存储器中。 6. 关闭连接:下载完成后,关闭TCP连接,释放资源。 在"31_HTTPC_Download_File"这个文件中,可能包含了以下内容: 1....
GetHost 函数是该程序的核心函数,负责解析 URL 并提取网站地址、端口和文件名。该函数的实现过程为: 1. 首先,检查输入字符串 src 是否以 "http://" 或 "https://" 开头,如果是,则将其去除。 2. 然后,使用 ...
锈-httpc 一个 http 客户端库。 工程进行中。 概念证明。 代码需要清理。 支持以下: HTTP/1.0 基础 HTTP/1.1(部分) HTTP 方法:GET/POST/PUT ... HTTP 标头(设置/获取) HTTP 分块传输编码 简单的 ...
本篇将深入解析标题为"CppHttpDemo.zip"的压缩包文件,它包含了一个用C++编写的HTTP服务器和客户端的小型示例——"fivee5p_httpC++_http客户端_library4cb"。这个项目旨在帮助开发者了解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 () | ...
HttpClient是Apache基金会开发的一个HTTP客户端库,广泛应用于Java编程中,用于执行HTTP请求,包括GET、POST以及文件下载等操作。...理解并熟练掌握HttpClient的使用,对于任何Java开发者都是必要的技能。
首先,我们来看标题中的"micrium_stm32f4-discovery_os3-tcpip-httpc-no-source.zip",这表明该压缩包包含了Micrium公司提供的STM32F4 Discovery开发板上的uC/OS-III TCP/IP和HTTP客户端的示例代码,但不包含源代码...
学习erlang的时候尝试编写的小例子,使用post方式发送json数据来进行http请求,希望能帮到大家~
connection reset解决方案(亲测可用).md
5. **处理实体**:如果响应包含实体,例如JSON或XML数据,可以使用`HttpEntity`接口来读取和解析实体内容。 在实际使用中,你可能还需要处理其他复杂情况,如处理重定向、处理cookies、使用HTTPS等。HttpClient库...
在接收过程中,可能需要使用`lwip_recv()`或`lwip_read()`函数,并且需要注意处理数据分块的问题,因为大文件可能会被分成多个TCP段。 为了确保任务的并发执行,操作系统在这里起着关键作用。你可以创建一个任务...
HTTPClientApplication 学生 威廉·安德鲁·路西尔(40033412) 安东尼·勒(40001837) 我如何运行(威廉) Maven包 Httpfs CD目标 java -jar Httpfs.jar -v -d /home/... 示例: java -jar Httpc.jar GET -
使用Java的声明性网站抓取库/框架。 使用Jaunt。 基础图书馆 。 主引擎。 TBD: + 用于需要JavaScript支持的高级用例。 待定: 。 对于更简单的用例,jSoup可能就足够了。 计划的输出格式和数据库 JSON (待办...