1.WebService的介绍

WebService为基于Web的服务。它使用Web(HTTP)方式,接收和响应请求。从而实现远程调用. 

(1).从WebService的工作模式上理解的话。它跟普通的Web程序(比方ASP、JSP等)并没有本质的差别,都是基于HTTP传输协议的程序。

(2).WebService所使用的数据是基于XML格式的和SOAP协议。

当中SOAP即简单对象訪问协议(Simple Object Access Protocal)协议是一种基于XML编码规范的文本协议。

2.WebService三要素

WebService三要素:SOAP、WSDL(WebServices Description Language)、UDDI(Universal Description Discovery and Integration)

(1).SOAP

1).SOAP介绍

SOAP消息基本上是从发送端到接收端的单向传输。但它们经常结合起来运行类似于请求 / 应答的模式。全部的 SOAP消息都使用 XML 编码。

一条 SOAP消息就是一个包括有一个必需的 SOAP 的封装包,一个可选的 SOAP 标头和一个必需的 SOAP 体块的 XML 文档。把 SOAP 绑定到 HTTP 提供了同一时候利用 SOAP
的样式和分散的灵活性的特点以及 HTTP 的丰富的特征库的长处。

在HTTP上传送 SOAP 并非说 SOAP 会覆盖现有的 HTTP 语义,而是 HTTP 上的 SOAP 语义会自然的映射到 HTTP 语义。在使用 HTTP 作为协议绑定的场合中, RPC 请求映射到 HTTP 请求上。而 RPC 应答映射到 HTTP 应答。然而,在 RPC 上使用 SOAP 并不仅限于 HTTP 协议绑定。

SOAP也能够绑定到TCP和UDP协议上。

2).SOAP消息格式

<SOAP-ENV:Envelope 各种属性="" >

    <SOAP:HEADER>
</SOAP:HEADER> <SOAP:Body>
</SOAP:Body> </SOAP-ENV:Envelope>

3).语法规则

一条 SOAP 消息就是一个普通的 XML 文档。包括下列元素:

必需的 Envelope 元素。可把此 XML 文档标识为一条 SOAP 消息

可选的 Header 元素,包括头部信息

必需的 Body 元素,包括全部的调用和响应信息

可选的 Fault 元素。提供有关在处理此消息所错误发生的信息

(2).WSDL

Web Service描写叙述语言WSDL 就是用机器能阅读的方式提供的一个正式描写叙述文档而基于XML的语言,用于描写叙述Web Service及其函数、參数和返回值。

由于是基于XML的,所以WSDL既是机器可阅读的。又是人可阅读的。

(3).UDDI

UDDI 是一种文件夹服务,企业能够使用它对 Web services 进行注冊和搜索。UDDI。英文为 "Universal Description, Discovery and Integration",可译为“通用描写叙述、发现与集成服务”

3.在Android上的应用

在Android平台调用WebService须要依赖于第三方类库ksoap2,它是一个SOAP Web serviceclient开发包。

KSoap2 Android 是Android平台上一个高效、轻量级的SOAP开发包,等同于Android平台上的KSoap2的移植版本号。眼下最新版本号ksoap2-android-assembly-3.3.0-jar-with-dependencies.jar,下载地址是:http://code.google.com/p/ksoap2-android/

4.简单调用实例

public void getRemoteInfo(String phoneSec) {
String nameSpace = "http://WebXml.com.cn/";
String methodName = "getMobileCodeInfo";
String endPoint = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";
String soapAction = "http://WebXml.com.cn/getMobileCodeInfo"; // 指定WebService的命名空间和调用的方法名
SoapObject rpc = new SoapObject(nameSpace, methodName);
rpc.addProperty("mobileCode", phoneSec);
rpc.addProperty("userId", "");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);
envelope.bodyOut = rpc;
envelope.dotNet = true; HttpTransportSE transport = new HttpTransportSE(endPoint);
try {
// 调用WebService
transport.call(soapAction, envelope);
// 获取返回的数据
SoapObject object = (SoapObject) envelope.bodyIn;
// 获取返回的结果
final String result = object.getProperty(0).toString();
toast(result);
} catch (Exception e) {
e.printStackTrace();
toast(e.getMessage());
}
}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

Android_WebServices_介绍的更多相关文章

  1. Android_WebServices_源代码分析

    本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/38037989 在Android_WebServices_介绍一文中, ...

  2. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  3. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  4. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  5. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  6. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  7. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

  8. HTML 事件(一) 事件的介绍

    本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...

  9. HTML5 介绍

    本篇主要介绍HTML5规范的内容和页面上的架构变动. 目录 1. HTML5介绍 1.1 介绍 1.2 内容 1.3 浏览器支持情况 2. 创建HTML5页面 2.1 <!DOCTYPE> ...

随机推荐

  1. Android Studio Debug

    小米4usb调试怎么打开?miui6进入开发者模式想要打开USB调试首先开启开发者模式.过去在MIUI V5版本时,小米手机开启开发者模式的方法是连续点击Anroid版本号.不过最新上市的小米4都搭载 ...

  2. 大约Android PopupWindow有用Spinner控件点击APP Crash案例整理!

    场景异常,如下面: android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.V ...

  3. Gallatin(大陆版)Office365中Exchange Online混合部署功能已经能够使用了

    经过測试,Exchange混合部署已经能够使用了 前置条件: 本机至少须要一台Exchange Server 2013作为混合部署server 须要一个公网域名 domian.com,能够和内部域名不 ...

  4. DNSserver内置笔记本

    DNS于linuxserver该服务名是named,和named服务相关的软件bind. 周围环境:     系统版本号:VBOX虚拟机centos6.0. 本机内网IP 192.168.2.198. ...

  5. [android更新类的内容开发APP]四、项目布局的基本功能(继续)

    昨天,只拿到电脑,别说,眼泪 http://joveth.github.io/funny/ 1.选项卡的滑动效果 要知道.用这个选项卡就是想让它滑动起来,不然的话.我才不喜欢用它呢. 在让他滑动之前, ...

  6. Android的相关的源代码的方法

    这里给大家介绍一个非常方便的相关法源代码. 1.打开Android SDK Manager.把你所使用的版本号的API给下载下来,例如以下图所看到的... 2.关联源代码时,将源代码关联到相应API的 ...

  7. mysql及powerdesigner的初次使用

    原文:mysql及powerdesigner的初次使用 MYSQL的下载与安装: 下载与安装指导教程: http://jingyan.baidu.com/article/597035521d5de28 ...

  8. Android SDCard Mount 流程分析

    前段时间对Android 的SDCard unmount 流程进行了几篇简短的分析,由于当时只是纸上谈兵,没有实际上的跟进,可能会有一些误导人或者小错误.今天重新梳理了头绪,针对mount的流程再重新 ...

  9. c#有关udp可靠传输(包传输数据包) 升级

    在c#有关udp可靠传输(包传输数据包)我们讨论,UDP包的发送,可是上一个程序有一个问题.就是数据比較大.一个Message类序列化后都有2048B,而实际的数据量也就只是 50B罢了,这就说明当中 ...

  10. 大数据系列修炼-Scala课程05

    Scala多重继承.构造器的执行顺序.AOP实现 多重继承的trait实现:Scala中接口可以继承具体的类,trait接口可以实现多重继承,并且某个类也可以继承特定的类,在继承后面可以混入,接口的实 ...