Android学习之调用Web Service

对于Android调用Web Service服务,首先要了解什么事Web Service?

根据W3C定义,Web Service(即WEB服务)是一种用于支持网络间不同机器互操作的软件系统。它是一种自包含,自描述和模块化的应用程序。它可以在网络中被描述,被调用和发布。可以将它看作是基于网络的,分布式的模块组件。简单来说呢,就是Web Service是一套针对网络的服务体系,通过这套体系可以使得不同机器在网络间相互操作,抽象的说这是一种服务,具体的说这是一套软件系统。

那么既然要支持不同机器在网络间的相互操作,自然需要支持一套网络协议,如:HTTP,SOAP,UDDI,WSDL等(都支持者几个协议)。这些协议对操作系统,编程语言等没有要求。

由于它是基于HTTP协议的,所以它可以穿过防火墙,不需要更改防火墙的设置。从而避免了特殊端口通信时无法穿越防火墙的缺点。

简而言之,Web Service可以让我们像调用本地方法一样调用远程服务器上的服务。并且我们不需要关系远程服务器上的服务是用什么语言编写的,是在什么平台下的。

由于支持众多协议,这里主要讲述SOAP协议。这是一种轻量级的,简单的,基于XML的协议。是一种简单的交换信息的协议。经常使用的版本有SOAP1.1和SOAP1.2。

其次离不开的是WSDL,这是一种描述性的XML文档。描述的Web Service相关的接口,参数等相关信息。简单说就是一种针对Web Service的帮助文档。


了解了Web Service和SOAP以及WSDL和它的关系,那么就回归主题,如何在Android开发中调用Web Service服务以便连接远程服务器呢?

Android要调用Web Service需要调用第三方库,Ksoap2。这是一个SOAP Web Service的客户端开发包。在Android工程中需要导入该开发包。因为SDK不包含该开发包。在Android中该包叫做ksoap-Android。下载地址http://code.google.com/p/ksoap2-android/。(最好翻墙下载)

下载包后就需要将该包放在Android工程的libs文件夹下。然后导入包基本完成。

使用Web Service时主要分为以下几步:

①、定义命名空间。 String namespace=" ";

②、定义调用方法名称。String methodname=" ";

③、定义EndPoint部分。该部分通常是将WSDL地址末尾?wsdl去掉后剩余的部分。

④、定义SOAP action部分。该部分通常是命名空间+调用的方法名称 的组合。

初步准备是这些,然后就是通过soap对象来使用。

1、创建SoapObject对象。 SoapObject ws=new SoapObject(namespace,methodname);

2、给需要调用的web service接口传入参数。ws.addProperty("参数名",value);

3、生成SOAP的调用请求信息,并指定SOAP版本。 SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER10)//假设版本是1.0。

4、设置是否调用dotNet开发的Web Service。envelope.dotNet=true;//调用

5、发出Web Service链接请求。 envelope.setOutputSoapObject(ws); //自己理解的意思,但这句是必须的。

6、建立HttpTransportSE transport=new HttpTransportSE(endPoint);

7、调用Web Service服务。transport.call(soapAction,envelope);

8、获取返回的数据。 SoapObject data=(SoapObject)envelope.bodyIn;

9、获取返回的结果。SoapObject result=data.getProperty(0).toString();

10、将Web Service返回的结果显示在TextView中去。 resultText.getText(result);

以上是对Web Service的使用的简介。由于本人是刚开始接触,所以简单的介绍这些基本的,在之后的使用中如遇到需要注意的地方会继续补充。

这里最后要注意,要在AndroidManifest.xml文件中添加网络权限。 <user-permission androdi:name="android.permission.INTERNET"/>。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Visual Studio 2019调用Web服务可以通过以下步骤完成: 1. 首先打开Visual Studio 2019,创建一个新的项目(可以是任何类型的项目,例如控制台应用程序)。 2. 在解决方案资源管理器,右键单击项目,选择“添加” > “服务引用”。 3. 在“添加服务引用”对话框,输入Web服务的URL地址,然后点击“确定”按钮。 4. Visual Studio 2019会自动解析并生成Web服务的代理类。在解决方案资源管理器的“服务引用”文件夹下,你可以看到生成的代理类文件。 5. 现在你可以使用生成的代理类来调用Web服务的方法。在代码实例化代理类,然后调用相应的方法即可。 以下是一个简单的示例,演示了如何在Visual Studio 2019调用Web服务的方法: ```csharp using System; namespace WebServiceExample { class Program { static void Main(string[] args) { // 实例化Web服务的代理类 ServiceReference1.WebServiceExampleClient client = new ServiceReference1.WebServiceExampleClient(); try { // 调用Web服务的方法 string result = client.HelloWorld(); Console.WriteLine(result); } catch (Exception ex) { Console.WriteLine("调用Web服务失败: " + ex.Message); } finally { // 关闭代理类连接 client.Close(); } Console.ReadLine(); } } } ``` 以上代码,我们实例化了名为"WebServiceExampleClient"的代理类,然后调用了它的名为"HelloWorld"的方法,将返回的结果打印到控制台。在使用完代理类后,请记得调用"Close"方法来关闭连接,以释放资源。 通过以上步骤,你就可以在Visual Studio 2019成功调用Web服务了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值