输出文件内容:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <skills> <!--第一个技能--> <skill name="独孤九剑"> <info>为独孤求败所创,变化万千,凌厉无比。其传人主要有风清扬、令狐冲。</info> </skill> <skill name="葵花宝典"> <info>宦官所创,博大精深,而且凶险至极。练宝典功夫时,首先要自宫净身。</info> </skill> <skill name="北冥神功"> <info>逍遥派的顶级内功之一,能吸人内力转化为自己所有,威力无穷。</info> </skill> </skills>请求报文:
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:q0='http://WebXml.com.cn/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' ><soapenv:Body> <q0:getWeatherbyCityName><q0:theCityName>唐山</q0:theCityName> </q0:getWeatherbyCityName></soapenv:Body></soapenv:Envelope>根据请求报文解析xml文件:
package hanwl.TestDemo; import java.io.IOException; import java.io.InputStream; import java.io.StringReader; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.commons.httpclient.methods.StringRequestEntity; import org.apache.commons.io.IOUtils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.xml.sax.InputSource; public class TestWebservice2 { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String wsdl = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";//请求地址 int timeout = 5000;//时间暂时设置成5秒,一般请求一个接口5秒应该是可以请求成功的 StringBuffer sb = new StringBuffer(""); sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); sb.append("<soapenv:Envelope " + " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' " + " xmlns:q0='http://WebXml.com.cn/' " + " xmlns:xsd='http://www.w3.org/2001/XMLSchema' " + " xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' >"); sb.append("<soapenv:Body>"); sb.append("<q0:getWeatherbyCityName>"); sb.append("<q0:theCityName>唐山</q0:theCityName> "); sb.append("</q0:getWeatherbyCityName>"); sb.append("</soapenv:Body>"); sb.append("</soapenv:Envelope>"); // HttpClient发送SOAP请求 System.out.println("HttpClient 发送SOAP请求"); HttpClient client = new HttpClient(); PostMethod postMethod = new PostMethod(wsdl); // 设置连接超时 client.getHttpConnectionManager().getParams().setConnectionTimeout(timeout); // 设置读取时间超时 client.getHttpConnectionManager().getParams().setSoTimeout(timeout); // 然后把Soap请求数据添加到PostMethod中 RequestEntity requestEntity = new StringRequestEntity(sb.toString(), "text/xml", "UTF-8"); //设置请求头部,否则可能会报 “no SOAPAction header” 的错误 //postMethod.setRequestHeader("SOAPAction",""); // 设置请求体 postMethod.setRequestEntity(requestEntity); int status = client.executeMethod(postMethod); // 打印请求状态码 System.out.println("status:" + status); // 获取响应体输入流 InputStream is = postMethod.getResponseBodyAsStream(); // 获取请求结果字符串 String result = IOUtils.toString(is); Document dc = strXmlToDocument(result); // Element root = dc.getRootElement(); // System.out.println(root.getName()); // System.out.println("result: " + result); } public static Document strXmlToDocument(String parseStrXml){ Document document = null; try { document = DocumentHelper.parseText(parseStrXml); Element root = document.getRootElement(); List<Element> list = root.elements(); getElement(list); } catch (DocumentException e) { e.printStackTrace(); } return document; } private static void getElement(List<Element> sonElemetList) { // Map<String,String> map = new HashMap<String, String>(); for (Element sonElement : sonElemetList) { if (sonElement.elements().size() != 0) { System.out.println(sonElement.getName() + ":"); getElement(sonElement.elements()); }else{ System.out.println(sonElement.getName() + ":"+ sonElement.getText()); } } } }控制台输出:
status:200 Body: getWeatherbyCityNameResponse: getWeatherbyCityNameResult: string:河北 string:唐山 string:54534 string:54534.jpg string:2020/7/3 16:00:49 string:20℃/25℃ string:7月3日 雷阵雨转多云 string:西风转南风小于3级 string:4.gif string:1.gif string:今日天气实况:气温:27℃;风向/风力:北风 1级;湿度:58%;紫外线强度:最弱。 string:中国人民保险中暑指数:无中暑风险,天气不热,在炎炎夏日中十分难得,可以告别暑气漫漫啦~ 健臻·血糖指数:不易波动,天气条件不易引起血糖波动。 穿衣指数:舒适,建议穿长袖衬衫单裤等服装。 洗车指数:不宜,有雨,雨水和泥水会弄脏爱车。 紫外线指数:最弱,辐射弱,涂擦SPF8-12防晒护肤品。 string:21℃/29℃ string:7月4日 多云转雷阵雨 string:南风转西南风小于3级 string:1.gif string:4.gif string:21℃/28℃ string:7月5日 雷阵雨 string:南风转东南风小于3级 string:4.gif string:4.gif string:唐山地处环渤海中心地带,南滨渤海,北依燕山,交通便利,可进出性很强。背山临海的地理格局、复杂多样的地貌类型和特有的地方历史文化,造就了许多极具特色的旅游资源。自然景观品位独特,人文景观文化积淀深厚。唐山北部山区有明长城221公里,东接山海关、老龙头,西接慕田峪、八达岭,有名关险隘29处,敌楼603座,烽火台82个。水下长城、大理石长城、72券楼、监狱楼、水门、长城砖窑、养马圈、屯兵营等皆为长城沿线独秀,代表了明长城历史文化的精华。长城沿线已有清东陵、景忠山、鹫峰山、汤泉、潘家口、大黑汀、青山关、灵山、白羊峪等一系列旅游景区。清东陵始建于康熙二年,是目前我国现存规模庞大、体系完整的帝王陵墓群之一,2000年11月列为世界文化遗产。陵区埋葬着5个皇帝、15个皇后、137个妃子、4个公主。清东陵的建筑恢宏、壮观、精美,庞大的建筑群中有中国现存最大的石牌坊,最长的神路。位于迁西县境内的景忠山,以其博大精深、源远流长的佛、道、儒三教合一的人文和自然景观闻名于世,曾被清康熙皇帝御题“灵山秀色”、“天下名山”。唐山拥有山、海、林、岛等多种独具特色的自然景观,境内有国家级文物保护单位2处,省级重点文物保护单位40处。唐山有196.5公里海岸线,海滨风光秀丽,尤其是菩提岛、月坨岛、打网岗三个近海岛屿,正在开发建设以自然生态观光和休闲度假为主要内容的新型旅游区,成为华北地区特色旅游靓点。 Disconnected from the target VM, address: '127.0.0.1:64428', transport: 'socket'本文转自:https://www.cnblogs.com/liuchaogege/p/5869044.html 本文转自:https://www.cnblogs.com/loong-hon/p/10337316.html