通过KSoap三方插件解析WebService接口方法
话不多说,正文如下:
1.在lib中放入ksoap2的jar包并导入
2.在xml 配置文件中加入:
<!-- 访问网络的权限 -->
<uses-permission android:name="android.permission.INTERNET" />
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<String, String> 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<String, String> properties)
try {
resoScanJSON(result);
} catch (JSONException e) {
e.printStackTrace();
}
}
}).start();
在这多说一嘴,就是必须在子线程中运行。
通过KSoap三方插件解析WebService接口方法的更多相关文章
- Java调用webservice接口方法
java调用webservice接口 webservice的 发布一般都是使用WSDL(web service descriptive langu ...
- Java调用webservice接口方法(SOAP message、xfire、axis)
webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使 ...
- ab post 测试 http 和 webservice 接口方法及用例
1.ab测试简单http请求 ab -n30000 -c1000 "http://10.1.1.21:8080/" 2.ab 测试 http 接口 (POST) ab -n400 ...
- 关于使用axis调用webservice接口方法
1.概述: 我们有时候会调用webserviec接口,我们向接口发送请求参数,从接口接收返回值. 2.形式: package client; import org.apache.axis.client ...
- 开发一个简单的ip解析webservice接口,并用springmvc生成客户端调用
1.创建webservice工程,这次先采用jax-ws框架,下次再尝试jax-rs(restful) 2.写个实现ip解析的类,接收传入的ip,并返回解析信息 3.Myeclipse——>Ne ...
- 『动善时』JMeter基础 — 50、使用JMeter测试WebService接口
目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ...
- 『动善时』JMeter基础 — 51、使用JMeter测试WebService接口
目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ...
- Java 常调用的Webservice接口的方法
WebService是基于Web的服务,WebService使用SOAP协议实现跨编程语言和跨操作系统平台,接收和响应外部系统的某种请求,从而实现远程调用.WebService采用HTTP协议传输数据 ...
- Kettle通过Http post请求webservice接口以及结果解析处理
kettle中有两种方式请求webservice服务,一个是Web服务查询,但是这个有缺陷,无法处理复杂的需求,遇到这种情况就需要用Http post来处理了. 网上也有很多关于Http post请求 ...
随机推荐
- SQL之NULL值的几种处理方式
1.创建测试表: drop table if exists tab_null_operator; create table tab_null_operator as select 1 as id,'c ...
- 使用openSSL开源工具进行SSL/TLS 安全测试
本文介绍了使用半自动化工具执行SSL&TLS安全性评估的过程,以及如何使用手动及工具的测试方法验证并发现问题.目的是优化TLS和SSL安全测试流程,帮助信息安全顾问在渗透测试时在TLS / S ...
- Autofac之类型关联
前面的学习一直使用的是直接注册类型并不是Autofac已经依赖注入的主要使用方式,最佳的依赖注入与Autofac的使用方式,都是要结合面向接口(抽象)编程的概念的.推崇的是依赖于抽象而不是具体 pub ...
- 内置函数-max、min、round、sorted、ord、chr、any、all、dir、eval、exec、map、filter、reduce
http://www.nnzhp.cn/archives/152 1.max,min,round print(max([3,4.563,3,6,2.5])) #取最大值,可循环参数即可,int类型的, ...
- pkg-config 详解
转载自:https://blog.csdn.net/newchenxf/article/details/51750239 1 什么是pkg-config pkg-config是一个linux下的命令, ...
- Cookie/Session的机制与安全
转载自:https://harttle.land/2015/08/10/cookie-session.html Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以 ...
- Lock和Synchronized
1.synchronized无法判断是否获取锁的状态,Lock可以判断是否获取锁2.Lock中的某些锁允许对共享资源的并发访问,如ReadWriteLock读写锁,readLock()获取读锁,wri ...
- 学号 20175201张驰 《Java程序设计》第7周学习总结
学号 20175201张驰 <Java程序设计>第7周学习总结 教材学习内容总结 第八章 String类能有效地处理字符序列信息,它的常用方法有: public int length()可 ...
- 基于Promise封装uni-app的request方法,实现类似axios形式的请求
https://my.oschina.net/u/2428630/blog/3004860 uni-app框架中 安装(项目根目录下运行) npm install uni-request --save ...
- DAX/PowerBI系列 - 查询参数用法详解(Query Parameter)
PowerBI - 查询参数用法详解(Query Parameter) 很多人都不知道查询参数用来干啥,下面总结一下日常项目中常用的几个查询参数的地方.(本人不太欢hardcode的东西) 使用查询 ...