ksoap调用webservice
Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
公司服务器是采用webservice搭建的,用soap协议交互数据,我用过gsoap跟ksoap.跟大家分享一下ksoap如何访问webservice的。如果有webservice服务器测试的朋友直接看客户端的代码参考就可以了,没有webservice服务器的朋友可以自己搭建一个测试一下.
服务器代码,这里就贴出一个方法(需要全部代码的请点击下载链接,下载链接在文档尾部)
public String GetUserInfo(){
return "Android开发技术交流群 202928390";
}
java客服端代码
package com.ansen.test; import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE; public class Test {
private static final String NAMESPACE ="http://Services.jason.TSD/";//你的webservice的命名空间
private static String URL ="http://localhost:8080/UserMgrService/UserInfoPort?wsdl";
private static final String METHOD_NAME ="GetUserInfo";//你要调用方法的名字 public static void main(String[] args) {
String name=ksoapTest();//在java项目中可以直接调用
System.out.println(name); // new Thread(){//如果是android项目必须要开启一个线程调用,还要增加访问网络的权限
// @Override
// public void run() {
// String name=ksoapTest();
// System.out.println(name);
// }
// }.start();
} public static String ksoapTest(){
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);//命名空间,要掉用的方法的名字
// request.addProperty("userId",9);//如果有参考可以设置参数
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); //协议
envelope.bodyOut = request;
HttpTransportSE ht = new HttpTransportSE(URL);//wsdl的url链接
SoapObject soapObject=null;
try {
ht.call(NAMESPACE+"#"+METHOD_NAME, envelope);
soapObject= (SoapObject) envelope.bodyIn;
} catch (Exception e) {
e.printStackTrace();
}
String name=soapObject.getProperty(0).toString();//得到第一个返回值
// String dwSum=soapObject.getProperty(1).toString();//得到第二个返回值
return name;
}
}
搭建服务器以及客户端调用操作步骤:
1.需要有jdk
2.需要有myeclipse环境
3.myeclipse需要配置tomcat
4.把服务器代码导入myeclipse里面
5.运行tomcat
6.浏览器输入地址:http://localhost:8080/UserMgrService/UserInfoPort?wsdl
7.把java客服端代码导入myeclipse,运行即可
后记:
最近有朋友发现我的代码在java项目下运行没有问题,代码移植android项目中就会有问题.
1.检查你的手机跟电脑是同一个局域网,或者你的服务器支持外网访问.
2.访问webservice的URL不要填写localhost,写你tomcat服务器的ip地址.例如我服务器ip地址是:192.168.9.129,修改后URL如下.
private static String URL ="http://192.168.9.129:8080/UserMgrService/UserInfoPort?wsdl";
ksoap调用webservice的更多相关文章
- 利用ksoap调用webservice
博文参考: http://www.cnblogs.com/shenliang123/archive/2012/07/05/2578586.html http://blog.csdn.net/jimbo ...
- Android调用WebService
这两天给老师做地铁app的demo,与后台的交互要用WebService,还挺麻烦的.所以想写点,希望有用. Web Services(Web服务)是一个用于支持网络间不同机器互操作的软件系统,它是一 ...
- Android调用WebService(转)
Android调用WebService WebService是一种基于SOAP协议的远程调用标准,通过 webservice可以将不同操作系统平台.不同语言.不同技术整合到一块.在Android SD ...
- Android通过ksoap2这个框架调用webservice大讲堂
昨天有人问我Android怎么连接mysql数据库,和对数据库的操作呀,我想把,给他说说json通信,可是他并不知道怎么弄,哎算了吧,直接叫他用ksoap吧,给他说了大半天,好多零碎的知识,看来还是有 ...
- 一个简单的webservice的demo(下)winform异步调用webservice
绕了一大圈,又开始接触winform的项目来了,虽然很小吧.写一个winform的异步调用webservice的demo,还是简单的. 一个简单的Webservice的demo,简单模拟服务 一个简单 ...
- 调用webservice进行身份验证
因为同事说在调用webservice的时候会弹出身份验证的窗口,直接调用会返回401,原因是站点部署的时候设置了身份验证(账号名称自己配置).因而在调用的时候需要加入身份验证的凭证. 至于如何获取身份 ...
- java接口调用——webservice就是一个RPC而已
很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...
- C# 调用webservice 几种办法(转载)
原文地址: http://www.cnblogs.com/eagle1986/archive/2012/09/03/2669699.html //=========================== ...
- 【Java EE 学习 80 下】【调用WebService服务的四种方式】【WebService中的注解】
不考虑第三方框架,如果只使用JDK提供的API,那么可以使用三种方式调用WebService服务:另外还可以使用Ajax调用WebService服务. 预备工作:开启WebService服务,使用jd ...
随机推荐
- BZOJ4516: [Sdoi2016]生成魔咒 后缀自动机
#include<iostream> #include<cstdio> #include<cstring> #include<queue> #inclu ...
- HDU 2492 Ping pong (树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2492 Ping pong Problem Description N(3<=N<=2000 ...
- Tomcat7 配置 ssl
运行一个配置了ssl的项目时tomcat总是启动不成功,报错:“requires the APR/native library which is not available”,后来发现是找不到apr的 ...
- win2003+sql2005配置
1.安装win2003+sp1 2.安装IIS: a.启用Asp支持(2003 默认安装不安装IIS 6 ,需另外安装.安装完IIS 6,需单独开启ASP支持) 控制面板 -> 管理工具 -&g ...
- 如何通过倾斜摄影数据手动配置s3c索引文件?
如何通过倾斜摄影数据手动配置s3c索引文件? 大家知道,倾斜摄影数据最常见的是OSGB格式,并且是由一个一个的Tile分级文件夹构成的Data文件夹.结构一般如下图所示: 那么,如何才能把模型的各个瓦 ...
- python Django session/cookie
一, Cookie #cookie # def cook1(request): # print(request.COOKIES) # 查看cooke # # print(request.get_sig ...
- 流行的JavaScript库 ——jQuery
1.为了简化 JavaScript 的开发, 一些 JavsScript 库诞生了. JavaScript 库封装了很多预定义的对象和实用函数.能帮助使用者建立有高难度交互的 Web2.0 特性的富客 ...
- android——handler机制原理
在android版本4.0及之后的版本中多线程有明确的分工,子线程可以写所有耗时的代码(数据库.蓝牙.网络服务),但是绝对不能碰UI,想碰UI跟着主线程走,那么我们如何才能让主线程知道我们要对 UI进 ...
- AndroidStudio错误总结及解决(待续)
AndroidStudio错误总结及解决 一. 当安装好AndroidStudio开启的时候出现如下错误: 百度的解决方法: 1)进入刚安装的Android Studio目录下的bin目录.找到ide ...
- EF 连接sql2000
正常连接会提示版本低 可以先用ef连接高版本的sql然后新建好EDMX文件后,在右键xml方式打开,把ProviderManifestToken="2008" 改为2000 然后再 ...