WebServiceg工具
WebServiceg工具
几年前的简单记录一下。
/*** 调用webService 接口返回字符串* @param asmxUrl 提供接口的地址 https://app.***.**.cn/Ser.asmx* @param waysName 设置要调用哪个方法 上面接口打开后需要调用的方法名字 * @param params 请求的参数 参数* @return*/public static String callWebService(String asmxUrl, String waysName, Map<String,String> params){String soapaction = "http://tempuri.org/"; // 域名,这是在server定义的--不知道的可以问接口提供方,他们一并提供这个Service service = new Service();Object[] obj = new Object[params.size()];try{Call call = (Call) service.createCall();call.setTargetEndpointAddress(asmxUrl);call.setOperationName(new QName(soapaction, waysName)); // 设置要调用哪个方法//设置变量每次循环完成+1int flag = 0;for (String param : params.keySet()) {call.addParameter(new QName(soapaction, param), // 设置要传递的参数--要和接口方提供的参数名一致org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);obj[flag] = params.get(param);flag++;}call.setReturnType(new QName(soapaction, waysName), String.class); // 要返回的数据类型(自定义类型,我这边接口提供方给我返回的是json字符串,所以我用string类型接收。这个地方一定要设置好,不然各种报错很崩溃)call.setUseSOAPAction(true);call.setSOAPActionURI(soapaction + waysName);return (String)call.invoke(obj);// 调用方法并传递参数-传递的参数和设置的参数要对应,顺序不能搞错了}catch (Exception ex){ex.printStackTrace();}return null;}//调用
String getHosInfo = WebServiceUtil.callWebService(" https://app.***.**.cn/Ser.asmx", "***Ba***Mob", paramMao);