ksoap2-android 调用webservice 示例代码,及注意事项

原创 2016年05月30日 15:03:05
/**
* 校验密码
*/
public static UserInfo verify(String account, String password,
String methodName) {
UserInfo user = new UserInfo();
String soapAction = nameSpace + methodName;
// 指定WebService的命名空间和调用的方法名
SoapObject rpc = new SoapObject(nameSpace, methodName);
// 设置调用WebService接口需要传入的参数
rpc.addProperty("usercode", account);
rpc.addProperty("md5Password", MD5.getMD5(password));
// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);


envelope.bodyOut = rpc;
// 设置是否调用的是dotNet开发的WebService
envelope.dotNet = true;
HttpTransportSE transport = new HttpTransportSE(endPoint, 30000);
transport.debug = true;// 是否是调试模式
// 等价于envelope.bodyOut = rpc;
envelope.setOutputSoapObject(rpc);
// 调用WebService
try {
transport.call(soapAction, envelope);
} catch (IOException e) {
user.setCanLogin(false);
user.setErrInfo(e.getMessage());
e.printStackTrace();
} catch (XmlPullParserException e) {
user.setCanLogin(false);
user.setErrInfo(e.getMessage());
e.printStackTrace();
}
// 获取返回的数据
SoapObject object = (SoapObject) envelope.bodyIn;
if (object != null) {
String result = object.getProperty(0).toString();


try {
JSONObject jo = new JSONObject(result);
int status = jo.getInt("status");


if (status == 0) {
user.setUserCode(jo.getString("usercode"));
user.setUserName(jo.getString("username"));
user.setToken(jo.getString("token"));
user.setUserId(jo.getLong("userid"));
user.setCanLogin(true);
} else {
user.setCanLogin(false);
user.setErrInfo(jo.getString("errInfo"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
return user;

}

注意事项:1.soapAction 在后台给的wsdl中可以看到,但有时是空的,比如这样:所以要知道,soapAction = nameSpace+methodName;

    2.设置调用WebService接口需要传入的参数,这些参数的赋值顺序必须与webservice方法的参数顺序一致,并且参数的类型也要一致。

    3.endPoint在wsdl中最下边的位置可找到:<wsdlsoap:address location="http://***************/services/****e"/>

    4.必须自行开启子线程。


Android 的网络编程(5)-通过ksoap2调用webservice示例

package com.study.ws;   import java.io.IOException;   import org.ksoap2.SoapEnvelope;   import org.k...

Android调用WebService(ksoap2 天气预报)

WebService是一种基于SOAP协议的远程调用标准,通过webservice可以将不同操作系统平台、不同语言、不同技术整合到一块。在Android SDK中并没有提供调用WebService的库...
  • Qiqihar
  • Qiqihar
  • 2012年04月10日 11:35
  • 2121

Android使用ksoap2调用C#中的webservice函数方法

Android使用ksoap2调用C#中的webservice函数方法 一:webService简介 那么什么是webService呢?,它是一种基于SAOP协议的远程调用标准,通过webser...

Android使用Json和ksoap2调用WebService(WCF)

自我介绍:本人C#程序猿,有一颗想学Android的心,在做到将Android Sqlite中的数据上传到远程服务器,自然而然的想到用C# 的WCF将数据插入到SQL,以下代码花了本猿猴1个星期的时候...

android 用ksoap2调用webservice的方法

Android 用ksoap2调用webservice的方法 Android 用ksoap2 调用webService 这个问题相信困扰了很多人,网上的教程虽然很多,但经过本人的...
  • dhbsdsg
  • dhbsdsg
  • 2012年08月08日 12:13
  • 445

android使用ksoap2调用webservice接口实现电话号码查询功能

最近在研究android调用webservice接口的问题,在网上查找了很多资料,现在把自己的整理出来分享一下,感谢其他一些开源的朋友,提供了很多的帮助 首先来看一下活动类的布局文件main.xml...

Android使用ksoap2调用C#中的webservice实现图像上传

目录:    一. android使用ksoap2调用webservice    二. 异步调用    三. Android使用ksoap2调用C#中的webservice实现图像上传参考方法    ...

Android使用ksoap2-android调用WebService学习

之前主要做客户端UI交互,很少处理数据和接触服务端,但现在的移动设备根本不可能离得开网络连接,数据的交换。最近学习的是在android端如何去调用远程WebService,都说WebService是一...

Android中ksoap2-android调用WebService 实现天气预报

Java本身提供丰富的Web Service支持,比如说sun公司制定的JAX-WS 2
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ksoap2-android 调用webservice 示例代码,及注意事项
举报原因:
原因补充:

(最多只允许输入30个字)