最近在android上使用KSOAP,于是写了这个工具类。
比较简单,利用反射将属性注入到pojo里面去。
使用方法:
User u = SoapObjectUtil.soapToPojo(User.class,soapObject);
代码:
/** * soapObject->javaBean转化工具 * @author zjf * */ public class SoapObjectUtil { /** * soap转化为javabean * @param <T> * @param clazz * @param soapObject * @return * @throws IllegalArgumentException * @throws SecurityException * @throws IllegalAccessException * @throws InvocationTargetException * @throws NoSuchMethodException * @throws InstantiationException */ public static <T> T soapToPojo(Class<T> clazz, SoapObject soapObject) throws IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, InstantiationException { Field[] fields = clazz.getDeclaredFields(); Object obj = clazz.newInstance(); for (Field f : fields) { String method = "set" + f.getName().substring(0, 1).toUpperCase() + f.getName().substring(1); if (hasMethod(method, clazz.getMethods())) { clazz.getMethod(method, new Class[] { f.getType() }).invoke( obj, new Object[] { soapObject.getProperty(f.getName()) }); } } return (T) obj; } private static boolean hasMethod(String methodName, Method[] method) { for (Method m : method) { if (methodName.equals(m.getName())) { return true; } } return false; } }
相关推荐
总之,ksoap是Android开发中调用SOAP Web Service不可或缺的工具,它简化了客户端与服务器之间的交互过程,让开发者能够专注于业务逻辑,而不是底层通信细节。通过理解和熟练运用ksoap,可以有效地提升Android应用与...
2. 在获取响应后,我们可以将SOAP响应转换为自定义类实例: ```java CustomObject customObject = (CustomObject) envelope.bodyIn; String property1Value = customObject.getPropertyAsString("property1"); int ...
4. **数据类型转换**:SOAP响应通常是XML格式,需要正确解析成Java对象才能使用。 **五、总结** kSOAP库为Android开发者提供了一种简单的方式来访问SOAP Web服务,尽管现代Web服务可能更倾向于RESTful API,但在...
1. **导入kSOAP2库**:将`ksoap2-android-assembly-3.2.0-jar-with-dependencies.jar`添加到项目的类路径中,确保所有依赖都被包含。 2. **设置SOAP请求参数**:创建一个`SoapObject`实例,用于表示SOAP请求的主体...
在分析kSOAP2源码时,你可以关注以下几个关键类和接口: - **SoapObject**:表示一个SOAP对象,可以添加属性和值。 - **SoapSerializationEnvelope**:用于序列化和反序列化SOAP消息的容器。 - **SoapEnvelope**:...
1. **数据封装与请求**:ksoap2提供了方便的数据封装接口,可以将Java对象转换为SOAP消息,反之亦然。通过SoapObject和SoapSerializationEnvelope类,可以轻松创建符合SOAP规范的请求和响应。 2. **HTTP传输**:...
1. 引入库:将提供的jar文件(ksoap2-android3.6.2.jar)添加到项目的类路径或依赖管理中。 2. 创建SOAP请求:构造一个SoapObject,设置方法名和参数。 3. 设置SOAP Header(如果需要):例如,添加认证信息或自定义...
本文将深入探讨ksoap2-3.1.0版本及其API,帮助开发者更好地理解和使用这一强大的工具。 一、ksoap2简介 ksoap2是一个基于Android平台的SOAP客户端库,它简化了与SOAP Web服务的交互。该库提供了一套完整的API,可以...
- **XML序列化和反序列化**:ksoap2能够将Java对象转换为XML格式,以便于发送到SOAP服务,同时也能将服务器返回的XML数据解析成Java对象。 - **错误处理**:ksoap2提供了异常处理机制,方便开发者捕获和处理可能...
ksoap2-android的封装实用类,源码见github(欢迎star):https://github.com/LiuShuaiQ/SoapProject
在Android中,ksoap2-android库是用于调用SOAP(Simple Object Access Protocol)Web Service的首选工具。本篇将详细介绍如何利用ksoap2-android-3.6.4库在Android应用中调用Web Service。 首先,我们需要理解SOAP...
- **对象序列化和反序列化**:Ksoap2能将Java对象转换为SOAP消息,同时也能解析SOAP响应并还原为Java对象,这极大地简化了客户端和服务端的数据交换。 - **支持各种数据类型**:包括基本类型如字符串、整数、浮点数...
虽然现代的Web服务趋势转向了RESTful API,但在一些遗留系统或特定需求场景下,ksoap2仍然是Android开发者与SOAP Web服务交互的重要工具。 在使用ksoap2-3.6.2版本时,开发者需要注意的是,每个版本可能都有其特性...
#### 二、KSOAP2 Android 中的`HttpTransportSE`类 `HttpTransportSE`是KSOAP2中用于处理HTTP传输的一个关键类,它是基于Java 2 Standard Edition (J2SE)的HTTP传输层。该类继承自`Transport`类,并提供了一系列的...
要在Android项目中使用KSOAP2,首先需要将对应的jar包(如ls-kosap.jar)添加到项目的libs目录下,然后在项目的build.gradle文件中将其添加到依赖项,或者通过Eclipse或Android Studio的类路径设置进行添加。...
总的来说,kSOAP2-j2ME是J2ME开发中与Web服务交互的重要工具。理解和掌握kSOAP2的使用方法和原理,对于提升J2ME应用的功能性和可扩展性有着重要作用。通过深入研究源代码,开发者可以更好地定制和优化其在特定项目中...
总之,KSOAP2是Android开发者连接SOAP Web服务的强大工具,它简化了通信过程,使得即使没有深入理解SOAP协议的开发者也能实现与Web服务的交互。通过导入压缩包中的JAR文件,你可以轻松地将这种功能整合到你的Android...
在Eclipse中,确保将这个jar文件加入到项目的构建路径中,这样编译器就能识别并使用KSOAP2的相关类。 接下来,我们详细解析KSOAP2调用WebService的基本步骤: 1. **创建SoapObject并指定命名空间和方法名**: ...