博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过KSoap三方插件解析WebService接口方法
阅读量:6081 次
发布时间:2019-06-20

本文共 2894 字,大约阅读时间需要 9 分钟。

话不多说,正文如下:

1.在lib中放入ksoap2的jar包并导入

2.在xml 配置文件中加入:

 

3.接下来就要通过代码调用借口了

//返回结果字符串是一个xml格式的,即对应的soap响应结果 private void getData() throws JSONException {
// 命名空间 String serviceNameSpace = “字符型”; // 请求URL String serviceURL = “字符型URL地址”; // 调用的方法 String methodName = “调用的NameMethod"; String soapAction = serviceNameSpace + methodName;//命名空间+调用方法 // 实例化序列化的Envelop SoapObject request = new SoapObject(serviceNameSpace(命名空间), methodName(调用方法名)); // 获得序列化的Envelop SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);//VER12 序列号和后台开发人员确定是多少 envelope.bodyOut = request;//有参数就加上参数 没有参数就不加了 // 设置是否调用的是dotNet开发的WebService envelope.dotNet = true; //true是.net false是java envelope.setOutputSoapObject(request); // Android传输对象 HttpTransportSE transport = new HttpTransportSE(serviceURL); transport.debug = true; try { transport.call(soapAction, envelope); // 获取返回的数据 Object object = envelope.getResponse(); result = String.valueOf(object); } catch (IOException e) { e.toString(); } catch (XmlPullParserException e) { e.printStackTrace(); } } 下面是我自己分装的基于Ksoap工具类
/**  * @param url        WebService服务器地址 * @param methodName WebService的调用方法名 * @param properties WebService的参数 */
public String callwebService1POST(String url, final String methodName, HashMap
properties) {
// 实例化序列化的Envelop SoapObject request = new SoapObject(Constant.NameSpace, methodName); // 假设map是HashMap对象 // map中的key是String类型,value是Integer类型 String key , value; if (properties != null) { Iterator iter = properties.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); // 获取key key = (String) entry.getKey(); // 获取value value = (String) entry.getValue(); request.addProperty(key, value); } } Log.e("测试-我就是看看数据:", request.toString()); // 获得序列化的Envelop SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER12); envelope.bodyOut = request; // 设置是否调用的是dotNet开发的WebService envelope.dotNet = true; //true是.net false是java envelope.setOutputSoapObject(request); // Android传输对象 HttpTransportSE transport = new HttpTransportSE(url); transport.debug = true; try { transport.call(Constant.NameSpace + methodName, envelope); // 获取返回的数据 Object object = envelope.getResponse(); String result = String.valueOf(object); //Log.e("FactoryResult:", String.valueOf(object)); return result; } catch (IOException e) { e.toString(); } catch (XmlPullParserException e) { e.printStackTrace(); } return null; }
在Activity中调用方法:
new Thread(new Runnable() {
@Override public void run() {
webServiceUtils = new WebServiceUtils(); String result = webServiceUtils.callwebService1POST(WebService_url, MethodName, HashMap
properties) try { resoScanJSON(result); } catch (JSONException e) { e.printStackTrace(); } } }).start();
在这多说一嘴,就是必须在子线程中运行。

转载于:https://www.cnblogs.com/sunshiwei/p/10779485.html

你可能感兴趣的文章
2.2013/06/13_log(n)+1
查看>>
关于加载iframe时进度条不消失的问题
查看>>
poj 3984迷宫问题【广搜】
查看>>
oracle ORA-01840:输入值对于日期格式不够长
查看>>
python基础知识~logger模块
查看>>
SIP入门(二):建立SIPserver
查看>>
Servlet3.0的异步
查看>>
WebService连接postgresql( 失败尝试)
查看>>
从头认识java-13.11 对照数组与泛型容器,观察类型擦除给泛型容器带来什么问题?...
查看>>
Python-MacOSX下SIP引起的pip权限问题解决方案(非取消SIP机制)
查看>>
从MFQ方法到需求分析
查看>>
android.view.WindowManager$BadTokenException: Unable to add window
查看>>
HDU5012:Dice(bfs模板)
查看>>
iphone openssh
查看>>
Linux下MEncoder的编译
查看>>
Javascript中闭包(Closure)的探索(一)-基本概念
查看>>
spark高级排序彻底解秘
查看>>
ylbtech-LanguageSamples-PartialTypes(部分类型)
查看>>
福建省促进大数据发展:变分散式管理为统筹集中式管理
查看>>
开发环境、生产环境、测试环境的基本理解和区别
查看>>