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);