KSOAP2_连接WebService

*****我是小知识点********

Ksoap2提供了对soap序列化更好的支持。Ksoap2是一个轻量级的J2ME平台的实现框架,提供了soap协议消息的

组装,网络post,网络return,解析等功能。

****美美分割线**********

1、在项目工程中导入KSOAP2.jar包

2、访问.net的URL,找到约定的URL命名空间和访问方法

String SERVICE_NS = "http://tempuri.org/";
String methodName = "mydata";

3、创建SoapObject,传入所要调用的Web Service的命名空间,Web Service方法名

SoapObject soapObject = new SoapObject(SERVICE_NS, methodName);

4、传参数给Web Service 服务器,调用SoapObject对象的addProperty(String name,Object value)方法去设置参数。(name为android与.net约定的参数名)

soapObject.addProperty("L",con);

5、使用SOA1.1协议创建Envelop对象,设置与.net提供的WebService保持较好的兼容性

// 生成调用WebService方法调用的soap信息,并且指定Soap版本

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);
envelope.bodyOut=soapObject;

envelope.dotNet = true;// 是否调用DotNet开发的WebService

6、创建HttpTransportSE传输对象,传入WebService服务器地址

String SERVICE_URL = "http://192.168.66.66:82/data.asmx";

HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);

7、通过调用HttpTransportSE对象的call方法,其中call的第一个参数是命名空间+Web service方法名,第二个参数是SoapSerializationEnvelope的对象。

ht.call(SERVICE_NS+methodName, envelope);

8、假如返回值为字符串,接收返回参数的方法是:SoapSerializationEnvelope的对象envelope,envelioe.getResponse,接收返回的值。

if(envelope.getResponse()!=null){

    String s = envelope.getResponse().toString();

}

************需注意的几点***********

1、命名空间一定要跟URL格式一致

2、方法名要与.net一致

3、注意SOAP的版本是10/11/12,你可以看.net中的xml文件开头版本,或者将三者均试一遍。

4、在调用的时候不能放在主线程中,要放在异步线程调用

***********华丽的分割线*************

package test.example.Ksoap2;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException; public class ConnectWebService {
/**
* 判断回来的值是否正确
*
* @param con
* @return
*/
public static boolean getData(String con) {
String SERVICE_URL = "http://192.168.66.66:82/data.asmx";
String SERVICE_NS = "http://tempuri.org/";
String methodName = "mydata"; // 创建SoapObject对象,
// 创建该对象时需要传入所要调用Wb Service的命名空间、Web Service方法名;
SoapObject soapObject = new SoapObject(SERVICE_NS, methodName);
// 如果有参数要传给Web Service服务器,
// 调用SoapObject对象的addProperty(String name,Object value)方法来设置参数,
// 该方法的name参数指定参数名;
// value参数指定参数值
soapObject.addProperty("L", con);
// 使用SOA1.1协议创建Envelop对象
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);
envelope.bodyOut = soapObject;
// 是否调用DotNet开发的WebService ,设置与.net提供的Web Service 保持较好的兼容性
envelope.dotNet = true;
try {
// 通过HttpTransportSE传输对象,传入WebService服务器地址
HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);
// 调用HttpTransportSE对象的call()方法,其中call的第一个参数soapAction,
// 第二个为SoapSerializationEvelope对象 调用远程Web Service;
ht.call(SERVICE_NS + methodName, envelope);
if (envelope.getResponse() != null) {
// 获取服务器响应返回的SOAP消息
/*
* SoapObject result = (SoapObject) envelope.bodyIn; SoapObject
* detail = (SoapObject)
* result.getProperty(methodName+"Result");
*/
/*
* 获取返回的数据 SoapObject object = (SoapObject) envelope.bodyIn;
* 获取返回的结果 String result = object.getProperty(0).toString();
*/
// 解析服务器相应的SOAP消息-字符串
String s = envelope.getResponse().toString();
if (s.equals("ok")) {
return true;
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
System.out.println("********************异常啦");
}
return false;
}
}

******************我是天天酷涛*******************

12.21-Android WebService(基于KSOAP2)的更多相关文章

  1. 在Android 中使用KSOAP2调用WebService

    WebService 是一种基于SOAP协议的远程调用标准.通过WebService可以将不同操作系统平台,不同语言.不同技术整合到一起.在Android SDK中并没有提供调用WebService的 ...

  2. Android webservice的用法详细讲解

    Android webservice的用法详细讲解 看到有很多朋友对WebService还不是很了解,在此就详细的讲讲WebService,争取说得明白吧.此文章采用的项目是我毕业设计的webserv ...

  3. Android零基础入门第35节:Android中基于回调的事件处理

    原文:Android零基础入门第35节:Android中基于回调的事件处理 通过前面两期掌握了Android中基于监听的事件处理的五种形式,那么本期一起来学习Android中基于回调的事件处理. 一. ...

  4. Android零基础入门第34节:Android中基于监听的事件处理

    原文:Android零基础入门第34节:Android中基于监听的事件处理 上一期我们学习了Android中的事件处理,也详细学习了Android中基于监听的事件处理,同时学会了匿名内部类形式,那么本 ...

  5. 程序员最喜爱的12个Android应用开发框架二(转)

    在上一篇程序员最喜爱的12个Android应用开发框架(一)中,我们为大家介绍了前6个Android应用开发框架,主要包括了 Xamarin.Phonegap.Corona SDK等.接下来,小编将继 ...

  6. 【我的书】Unity Shader的书 — 文件夹(2015.12.21更新)

    写在前面 感谢全部点进来看的朋友.没错.我眼下打算写一本关于Unity Shader的书. 出书的目的有以下几个: 总结我接触Unity Shader以来的历程,给其它人一个借鉴.我非常明确学Shad ...

  7. 2015.12.21~2015.12.24真题回顾!-- HTML5学堂

    2015.12.21~2015.12.24真题回顾!-- HTML5学堂 山不在高,有仙则名!水不在深,有龙则灵!千里冰封,非一日之寒!IT之路,须厚积薄发!一日一小练,功成不是梦!小小技巧,尽在HT ...

  8. Android之基于HTTP协议的下载

    Android之基于HTTP协议的下载 http://www.blogjava.net/zh-weir/archive/2010/05/02/319892.html http://www.qianfa ...

  9. WebService基于SoapHeader实现安全认证(一)

    本文转载:http://www.cnblogs.com/houleixx/archive/2009/08/22/webservice-soapheader-security.html WebServi ...

随机推荐

  1. Java: 类继承中 super关键字

    super 关键字的作用有两个: 1)在子类中调用超类的构造器,完成实例域参数的初始化,调用构造器的语句只能作为另一个构造器(通常指的是子类构造器)的第一条语句出现, 2)在子类中调用超类的方法,如: ...

  2. linux文件截取前几行,后几行,中间几行命令

    1. 如果你只想看文件的前5行,可以使用head命令,如: head -5 /etc/passwd 2. 如果你想查看文件的后10行,可以使用tail命令,如: tail -2 /etc/passwd ...

  3. [05] 利用private来封装

    我们知道,面向对象开发的三大特点是:封装性.继承性.多态性 所谓封装性,实际上是表达了一种信息隐藏.从表面上来阐述,就是使用private修饰符来对属性或者方法进行信息隐藏,而使用public的方法控 ...

  4. HTML文本

    1.HTML元素 2.HTML属性 3.HTML文本格式化 4.HTML样式 1.HTML元素 1.什么是HTML元素 HTML 元素指的是从开始标签(start tag)到结束标签(end tag) ...

  5. jquery实现点击div外隐藏div

    html <div style="width:100px;height:100px;border:1px solid #ff0" id="div"> ...

  6. 【京东详情页】——原生js爬坑之放大镜

    一.引言 在商城的详情页中,放大镜的功能是很常见的.这里京东详情页就要做一个仿放大镜的效果,预览如下: 二.实现原理 实际上,放大镜的实现是单纯用几个div,鼠标移入其中一个小图div,触发事件显示另 ...

  7. Sql Server——查询(一)

    查询数据就是对数据库中的数据进行筛选显示.显示数据的表格只是一个"虚拟表". 查询 (1)对列的筛选: 1.查询表中所有数据: select * from 表名           ...

  8. Markdown 编写规范

    说明及目的 作为一个在博客园混迹了俩三年的人,一直在这里看别人的博客,现在准备开始写自己的博客,目的呢,就是一下几点吧: 项目过程中的历史经验教训积累记载,吃一堑长一智,不想在同一个坑掉进去好几次 学 ...

  9. CentOS 7安装squid代理服务器

    Squid,一个高性能的代理缓存服务器,支持FTP.gopher.HTTP协议. Squid,一个缓存Internet 数据的软件,其接收用户的下载申请(作为代理服务器),并自动处理所下载的数据,并返 ...

  10. Training little cats poj3735

    Training little cats Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9299   Accepted: 2 ...