WebService接口本质上和HTTP POST/GET接口一样,就是个接口,只不过调用方式不一样,区别我看百度AI回答的就挺好的:
由于使用的是SOAP协议传输,所以需要根据服务器端的文档命名空间来发起请求或接收请求;
这里以获取天气webservice接口举例,使用postman模拟调用:
1、设置请求头:Content-Type:text/xml;charset=utf-8
2、请求体选择raw,xml格式:
请求体中:
http://schemas.xmlsoap.org/soap/envelope/ 是固定的,SOAP 1.1 版本默认;
http://WebXml.com.cn/ 为天气服务网站的wsdl命名空间(放Envelope 上也可以);
abc是自己起的名 :
<abc:Envelope xmlns:abc="http://schemas.xmlsoap.org/soap/envelope/">
<abc:Body>
<getWeatherbyCityName xmlns="http://WebXml.com.cn/">
<theCityName>天津</theCityName>
</getWeatherbyCityName>
</abc:Body>
</abc:Envelope>
3、发起请求,获取请求结果:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<getWeatherbyCityNameResponse xmlns="http://WebXml.com.cn/">
<getWeatherbyCityNameResult>
<string>直辖市</string>
<string>天津</string>
<string>54517</string>
<string>54517.jpg</string>
<string>2024/9/29 15:30:09</string>
<string>17℃/27℃</string>
<string>9月29日 阴转中雨</string>
<string>南风小于3级转北风4-5级</string>
<string>2.gif</string>
<string>8.gif</string>
<string>今日天气实况:气温:27.8℃;风向/风力:东南风 1级;湿度:50%;紫外线强度:最弱。</string>
<string>感冒指数:较易发,风较大,阴冷潮湿,较易感冒。</string>
<string>12℃/21℃</string>
<string>9月30日 小雨转多云</string>
<string>北风转西北风4-5级</string>
<string>7.gif</string>
<string>1.gif</string>
<string>10℃/18℃</string>
<string>10月1日 多云转晴</string>
<string>西北风4-5级转北风小于3级</string>
<string>1.gif</string>
<string>0.gif</string>
<string>天津市简称津,它地处华北平原东北部,渤海之滨,总面积11919.7平方公里,素有渤海明珠之称。全市13个区、5个县,为中央直辖市和十四个沿海开放城市之一。人口1000万,有汉、回、朝鲜、满、蒙古等民族。天津市北屏燕山,东临渤海,一般为海拔2-5米的平原,属暖温带大陆性季风气候。冬季港口有八十天封冰期,年降水量550毫米左右,大都集中在夏季。天津地区的形成始于隋朝大运河的开通。唐中叶以后,天津成为南方粮、绸北运的水陆码头。宋金时称“直沽寨”,元朝改称“海津镇”,是军事重镇和漕粮转运中心。明永乐二年(1404年)筑城设卫,称“天津卫”。景观:水上公园、大沽炮台、天津海滨浴场等。天津的旅游景点以人文景观为主,以自然景观为辅。其最著名的十大景观为:天塔旋云、黄崖关长城、盘山、独乐寺、大沽口炮台、海河公园、古文化街、南市食品街和旅馆街、水上公园、中环线。其中,黄崖关古长城、盘山、独乐寺、渔阳鼓楼、白塔寺、公输子庙、古地层剖面、翠屏度假村、八仙胜境、大沽口炮台、玉黄阁、天尊阁、望海楼教堂、古文化街、文庙、李叔同书法碑林、霍元甲故里等为天津主要的名胜古迹。还有海河公园、水上公园、清真大寺、大悲院等也是天津有名的观光之地。</string>
</getWeatherbyCityNameResult>
</getWeatherbyCityNameResponse>
</soap:Body>
</soap:Envelope>