http调用webService接口
程序员文章站
2022-06-19 11:41:55
/**@author :xiaowang@description:TODO@date :2020/12/2 14:03/public class HttpWebServiceUtils {/http远程访问SOAP协议接口@param url: 服务接口地址"http://192.168.0.120:8222/HelloWorld?wsdl"@param isClass:接口类名@param isMethod: 接口方法名@param sendSoapString...
* java http调用webService接口*
1.这里以天气接口为例
/**
* @author :xiaowang
* @description:TODO
* @date :2020/12/2 14:03
*/
public class HttpWebServiceUtils {
/*
* http远程访问SOAP协议接口
* @param url: 服务接口地址"http://192.168.0.120:8222/HelloWorld?wsdl"
* @param isClass:接口类名
* @param isMethod: 接口方法名
* @param sendSoapString: soap协议xml格式访问接口
* @return soap协议xml格式
* @备注:有四种请求头格式1、SOAP 1.1; 2、SOAP 1.2 ; 3、HTTP GET; 4、HTTP POST
* 参考---》http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getWeatherbyCityName
*/
public static String sendWebService(String url,String isClass,String isMethod,StringBuffer paramsXml,String token) throws Exception {
//传过来的xml格式
String xml = paramsXml.toString();
if (xml==null){
return "传入xml参数不能为空!";
}
URL sopul = new URL(url);
//获取连接
URLConnection connention = sopul.openConnection();
//缓存设置
connention.setUseCaches(false);
//设置输入输出,新创建的connection默认是没有读写权限的
connention.setDoInput(true);
connention.setDoOutput(true);
//设置请求头
connention.setRequestProperty("Content-Length",xml.length()+"");
//这里设置请求头类型为xml,传统http请求的是超文本传输格式text/html
connention.setRequestProperty("Content-Type","text/xml; charset=utf-8");
//调用的类名,方法名
connention.setRequestProperty(isClass,isMethod);
//这里如果携带token设置token,没传则不设置
if (token!=null){
connention.setRequestProperty("Authorization","Bearer "+token);
}
OutputStream os = connention.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os,"utf-8");
//写入传过来的xml文件格式
osw.write(xml);
//释放资源
osw.flush();
osw.close();
//下面获取webservice返回过来的流
InputStream is = connention.getInputStream();
if (is!=null){
byte[] bytes = new byte[0];
bytes=new byte[is.available()];
is.read(bytes);
//将字节数组转换为字符串输出
String outXml = new String(bytes,"UTF-8");
return outXml;
}
return null;
}
2.方法测试
public static void main(String[] args) {
String url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";
//构造xml参数
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>")
.append("<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/\">")
.append("<soap:Body>")
.append("<getWeatherbyCityName xmlns=\"http://WebXml.com.cn/\">")
.append("<theCityName>")
.append("苏州")
.append("</theCityName>")
.append("</getWeatherbyCityName>")
.append("</soap:Body>")
.append("</soap:Envelope>");
try {
String outXml = sendWebService(url, "getWeatherbyCityName", "theCityName", sb, "");
System.out.println(outXml);
} catch (Exception e) {
e.printStackTrace();
}
}
3.返回结果
D:\develop\jdk1.8\bin\java.exe "-javaagent:D:\develop\IDEA2018\IntelliJ IDEA 2018.2.2\lib\idea_rt.jar=62386:D:\develop\IDEA2018\IntelliJ IDEA 2018.2.2\bin" -Dfile.encoding=UTF-8 -classpath D:\develop\jdk1.8\jre\lib\charsets.jar;D:\develop\jdk1.8\jre\lib\deploy.jar;D:\develop\jdk1.8\jre\lib\ext\access-bridge-64.jar;D:\develop\jdk1.8\jre\lib\ext\cldrdata.jar;D:\develop\jdk1.8\jre\lib\ext\dnsns.jar;D:\develop\jdk1.8\jre\lib\ext\jaccess.jar;D:\develop\jdk1.8\jre\lib\ext\jfxrt.jar;D:\develop\jdk1.8\jre\lib\ext\localedata.jar;D:\develop\jdk1.8\jre\lib\ext\nashorn.jar;D:\develop\jdk1.8\jre\lib\ext\sunec.jar;D:\develop\jdk1.8\jre\lib\ext\sunjce_provider.jar;D:\develop\jdk1.8\jre\lib\ext\sunmscapi.jar;D:\develop\jdk1.8\jre\lib\ext\sunpkcs11.jar;D:\develop\jdk1.8\jre\lib\ext\zipfs.jar;D:\develop\jdk1.8\jre\lib\javaws.jar;D:\develop\jdk1.8\jre\lib\jce.jar;D:\develop\jdk1.8\jre\lib\jfr.jar;D:\develop\jdk1.8\jre\lib\jfxswt.jar;D:\develop\jdk1.8\jre\lib\jsse.jar;D:\develop\jdk1.8\jre\lib\management-agent.jar;D:\develop\jdk1.8\jre\lib\plugin.jar;D:\develop\jdk1.8\jre\lib\resources.jar;D:\develop\jdk1.8\jre\lib\rt.jar;D:\Code\webservice\soup\out\production\soup com.jeeplus.util.HttpWebServiceUtils
<?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>58357</string><string>58357.jpg</string><string>2020/12/2 14:48:04</string><string>6℃/13℃</string><string>12月2日 阴</string><string>北风3-4级</string><string>2.gif</string><string>2.gif</string><string>今日天气实况:气温:11℃;风向/风力:北风 2级;湿度:75%;紫外线强度:最弱。</string><string>中国人民保险中暑指数:无中暑风险,天气舒适,对易中暑人群来说非常友善。
健臻·血糖指数:不易波动,天气条件好,血糖不易波动,可适时进行户外锻炼。
穿衣指数:较冷,建议着厚外套加毛衣等服装。
洗车指数:较不宜,风力较大,洗车后会蒙上灰尘。
紫外线指数:最弱,辐射弱,涂擦SPF8-12防晒护肤品。
</string><string>3℃/12℃</string><string>12月3日 多云</string><string>北风4-5级</string><string>1.gif</string><string>1.gif</string><string>3℃/10℃</string><string>12月4日 晴</string><string>北风3-4级</string><string>0.gif</string><string>0.gif</string><string>苏州位于长江下游,太湖之滨,鱼米之乡,面积8488平方公里。下辖张家港,常熟,太仓,昆山,吴县,吴江六县市,人口575万。其为亚热带季风气候,四季分明,全年平均气温15-17度,1月最低气温-9.4度,7、8月份最高气温达38.6度;全年平均降水量偏高,近1076.2毫米,无霜期在230天左右。苏州全市地势低平,平原占总面积的54%,平均海拔4米左右,东南部地势低洼,西南部多小山丘。吴县穹窿山主峰高351.7米,为全市最高点。境内河流纵横,湖泊众多,京杭运河贯通南北,望虞河、娄江、太浦河等连接东西,阳澄湖、昆承湖、淀山湖等散布其间,太湖水面90%左右在苏州市境内,全市水面占总面积的42.5%,是著名的江南水乡。苏州古城内现有河道35公里、桥梁168座,被誉为"东方威尼斯"。苏州园林甲天下,已被列入世界文化遗产名录,在中国四大名园中,苏州就占有两席(拙政园、留园)。“吴中第一名胜”虎丘,2500多年的历史形成的深厚的文化积淀,成为游客来苏州旅游的必游之地。而唐朝诗人张继的一首《枫桥夜泊》,使古今游客都要来枫桥,闻寒山寺的钟声。景观:苏州,拙政园,网师园,狮子林,留园,沧浪亭,怡园枫桥,寒山寺</string></getWeatherbyCityNameResult></getWeatherbyCityNameResponse></soap:Body></soap:Envelope>
Process finished with exit code 0
本文地址:https://blog.csdn.net/xiaowang199303/article/details/110481496
上一篇: html,实现心动的表白代码
下一篇: SEM中质量度如何理解 有哪些影响因素