httpclient调用webservice接口的方法实例

编程入门 行业动态 更新时间:2024-10-10 19:25:21

httpclient调用webservice接口的方法<a href=https://www.elefans.com/category/jswz/34/1771375.html style=实例"/>

httpclient调用webservice接口的方法实例

这几天在写webservice接口,其他的调用方式要生成客户端代码,比较麻烦,不够灵活,今天学习了一下httpclient调用ws的方式,感觉很实用,话不多说,上代码

:8070/hcm/service/MDMWebService?wsdl

 

 

 

 

package com.ycgwl.rosefinch.module.basedev.server.services.base.util;import org.apachemons.httpclient.HttpClient;
import org.apachemons.httpclient.methods.InputStreamRequestEntity;
import org.apachemons.httpclient.methods.PostMethod;
import org.apachemons.httpclient.methods.RequestEntity;import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;public class HttpClientTest {/*** 访问服务** @param wsdl   wsdl地址* @param ns     命名空间* @param method 方法名* @param list   参数* @return* @throws Exception*/public synchronized static String accessService(String wsdl, String ns, String method, List<String> list, String result) throws Exception {StringBuffer stringBuffer = new StringBuffer();//拼接参数for (int i = 0; i < list.size(); i++) {stringBuffer.append("<arg" + i + ">" + list.get(i) + "</arg" + i + ">");}String soapResponseData = "";//拼接SOAPStringBuffer soapRequestData = new StringBuffer("");//        String arg0="{\"system\": \"BDMSigner\", \"keyCode\": \"SVP26FTvzwMTMWDVDP9jZw==\",\"change\": \"2018-05-12 18:17:05\"}";
//        String arg1="TB_ORG_POSITION";
//        String arg2="2018-05-12 18:17:05";
//        String arg3="2018-05-12 18:17:05";
//        String arg4="1";
soapRequestData.append("<soapenv:Envelope xmlns:soapenv=\"/\" xmlns:ser=\"/\">");soapRequestData.append("<soapenv:Header/>");soapRequestData.append("<soapenv:Body>");soapRequestData.append("<ser:" + method + ">");soapRequestData.append(stringBuffer);
//        soapRequestData.append("<arg0>"+arg0+"</arg0>");
//        soapRequestData.append("<arg1>"+arg1+"</arg1>");
//        soapRequestData.append("<arg2>"+arg2+"</arg2>");
//        soapRequestData.append("<arg3>"+arg3+"</arg3>");
//        soapRequestData.append("<arg4>"+arg4+"</arg4>");soapRequestData.append("</ser:" + method + ">");soapRequestData.append("</soapenv:Body>" + "</soapenv:Envelope>");PostMethod postMethod = new PostMethod(wsdl);// 然后把Soap请求数据添加到PostMethod中byte[] b = null;InputStream is = null;try {b = soapRequestData.toString().getBytes("utf-8");is = new ByteArrayInputStream(b, 0, b.length);RequestEntity re = new InputStreamRequestEntity(is, b.length, "text/xml; charset=UTF-8");postMethod.setRequestEntity(re);HttpClient httpClient = new HttpClient();int status = httpClient.executeMethod(postMethod);if (status == 200) {soapResponseData = getMesage(postMethod.getResponseBodyAsString(), result);}} catch (Exception e) {e.printStackTrace();} finally {if (is != null) {is.close();}}return soapResponseData;}public static String getParam(Map<String, String> params) {String param = "";if (params != null) {Iterator<String> it = params.keySet().iterator();while (it.hasNext()) {String str = it.next();param += "<" + str + ">";param += params.get(str);param += "</" + str + ">";}}return param;}public static String getMesage(String soapAttachment, String result) {if (result == null) {return null;}if (soapAttachment != null && soapAttachment.length() > 0) {int begin = soapAttachment.indexOf("<return>");begin = soapAttachment.indexOf(">", begin);int end = soapAttachment.indexOf("</return>");String str = soapAttachment.substring(begin + 1, end);str = str.replaceAll("<", "<");str = str.replaceAll(">", ">");return str;} else {return "";}}/*** @param args*/public static void main(String[] args) {try {Date useDate = new Date();SimpleDateFormat format0 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String beginDate = format0.format(useDate);String endDate = format0.format(useDate);List list = new ArrayList();list.add(SecurityUtil.getHcmKey("BDMSigner", "yhn@BDM123", "mix@CODE"));list.add("TB_ORG_POSITION");list.add(beginDate);list.add(endDate);list.add("1");String wsdl = ":8070/hcm/service/MDMWebService";String ns = "/";String method = "getHrInfo";String response = accessService(wsdl, ns, method, list, "result");} catch (Exception e) {e.printStackTrace();}}}

 

转载于:.html

更多推荐

httpclient调用webservice接口的方法实例

本文发布于:2024-03-09 18:59:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1725818.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实例   接口   方法   httpclient   webservice

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!