webservice与android实现通信.docx

上传人:b****5 文档编号:3195252 上传时间:2022-11-20 格式:DOCX 页数:16 大小:373.97KB
下载 相关 举报
webservice与android实现通信.docx_第1页
第1页 / 共16页
webservice与android实现通信.docx_第2页
第2页 / 共16页
webservice与android实现通信.docx_第3页
第3页 / 共16页
webservice与android实现通信.docx_第4页
第4页 / 共16页
webservice与android实现通信.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

webservice与android实现通信.docx

《webservice与android实现通信.docx》由会员分享,可在线阅读,更多相关《webservice与android实现通信.docx(16页珍藏版)》请在冰豆网上搜索。

webservice与android实现通信.docx

webservice与android实现通信

通过webservice与android实现通信(C#与android)

我用的系统是win7,开发环境是vs2008eclipse3.5,当然eclipse需要安装android的插件。

这里我就不说如何搭建了,大家不懂的可以去http:

//www.mars-droidcm/android-mars论坛找找,有视频前几集就是教你如何搭建环境。

假设你们已经拥有vs2008以及eclipse。

首先第一步先让我们搭建webservice服务端。

实现了复杂数据的返回,以及解析。

但是android不能发送复杂数据给webservice,当然webservice也不能穿复杂数据的参数。

这也是webservice规定的,算是不足之处吧。

1、启动vs,新建一个ASP.NETWeb服务应用程序。

下面的默认名称就是webservice1。

我们新建一个程

序名字就叫webservice2android。

webservices代码如下:

usingSystem;

usingSystem.Collections;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Web.Services;

usingSystem.Web.Services.Protocols;

usingSystem.Xml.Linq;

usingwebservice2android;///必须应用自己的namespace

namespacewebservice2android

{

publicclassAdmin

{

privateintid;

publicintId

{

get{returnid;}

set{id=value;}

}

privatestringusername;

publicstringUsername

{

get{returnusername;}

set{username=value;}

}

privatestringpassword;

publicstringPassword

{

get{returnpassword;}

set{password=value;}

}

}

 

///

///Service1的摘要说明

///

[WebService(Namespace="http:

//tempuri.org/")]

[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]

[ToolboxItem(false)]

//若要允许使用ASP.NETAJAX从脚本中调用此Web服务,请取消对下行的注释。

//[System.Web.Script.Services.ScriptService]

publicclassService1:

System.Web.Services.WebService

{

[WebMethod]

publicstringHelloWorld()

{

return"HelloWorld";

}

 

[WebMethod]

[System.Xml.Serialization.XmlInclude(typeof(Admin))]///添加Admin到XmlInclude

publicArrayListgetData()

{

ArrayListlist=newArrayList();

for(inti=0;i<10;i++)

{

Adminadmin=newAdmin();

admin.Id=i;

admin.Username="admin"+i;

admin.Password="admin"+i;

list.Add(admin);

}

returnlist;

}

}

}

2、由于android访问webservice时,需要用到ip服务信息,以及域名,但是当vs启动webservice时,他的ip以及端口号都是随机的,这样android就不能访问该服务。

所以我们在这里需要绑定我们的ip以及端口号

A、首先我们打开win7的控制面板。

B、打开程序与功能。

C、打开打开或关闭windows功能。

D、找到Internet信息服务,展开文件夹。

再找到Web管理工具,展开你会发现4个关于iis的文件夹。

你将这四个文件夹都选中对号.。

E、单击确定。

这里需要等待一些时间。

F、打开控制面板,找到管理工具。

G、然后打开Internet信息服务(IIS)管理器

H、展开计算机名-pc(),选择网站,右击添加网站

I、输入网站名称,我这里写的是test

J、到计算机中创建一个目录,该目录用来放你发布的webservice用的。

我建在了D盘的根目录下。

K、将建好的路径放到物理路径中。

点击确定就行了。

L、浏览DefaultWebSite网站,将iisstart.htm文件复制,然后到test网站下浏览,再将他粘贴上去。

最好修改一下,这样可以和我们默认的做一区别,防止混淆。

M、将DefaultWebSite网站停止,然后打开test网站。

N、关闭为windows防火墙,或者允许该程序通过。

O、这是你在同网下的电脑里输入你的ip,将会看到你的iisstart.htm页面,这就说明你成了。

这是我的页面。

3、我们将建好的webservice发布在网上。

A、右击项目选择发布

目标位置:

就是我们iis服务的网站文件夹。

然后点击发布。

B、然后F5启动vs,此时浏览器将自动打开。

C、将地址栏里的localhost:

xxx改为你的计算机ip(不用加端口)。

例如我的:

http:

//192.168.0.108/Service1.asmx

然后,回车。

页面就会不改变的。

只要连接到你的计算机的电脑在浏览器中输入该地址,会和你看到的一样的。

D、记下上面的地址。

(当然你的就是你自己的ip信息了)我们在android端要用到的。

还有我们的域名:

就是默认的http:

//tempuri.org/。

还需要记住方法名HelloWord,和getData。

以及参数的类型和参数名。

3、创建android项目,我建的项目名称叫做:

AndroidWsTest2.2

注意项目需要两个jar包。

在网上能下载到。

新建一个包,比如webservices.util常见类叫做:

WebserviceUtiler

代码如下:

packagewebservice.util;

importjava.io.IOException;

importjava.util.HashMap;

importorg.ksoap2.SoapEnvelope;

importorg.ksoap2.serialization.SoapObject;

importorg.ksoap2.serialization.SoapSerializationEnvelope;

importorg.ksoap2.transport.AndroidHttpTransport;

importorg.ksoap2.transport.HttpTransportSE;

importorg.xmlpull.v1.XmlPullParserException;

/**

*

*@authorytzn

*WebServicesandroid客户端

*/

publicclassWebserviceUtiler{

privateStringnameSpace;//域名

privateStringmethodName;//方法名

privateStringurl;//服务器发布的ip信息

privateStringsoapAction;//应用程序字符串

privateStringmethodNames[];//参数名

privateObjectmethodValues[];//参数值

privateintmethodLenth=0;//参数个数

privateHashMapmaps;//装在参数的map

/**

*

*@paramnameSpace域名http:

//ytzn.test/

*@parammethodName方法名Add

*@paramurl服务器发布的ip信息http:

//192.168.0.108/Service1.asmx

*@parammethodNames参数变量StringmethodNames[]=newString[]{"x","y","z"};

*@parammethodValues参数值ObjectmethodValues[]=newObject[]{9,14,8};

*/

publicWebserviceUtiler(StringnameSpace,StringmethodName,Stringurl,

String[]methodNames,Object[]methodValues){

super();

this.nameSpace=nameSpace;

this.methodName=methodName;

this.url=url;

this.methodNames=methodNames;

this.methodValues=methodValues;

this.soapAction=this.nameSpace+this.methodName;

this.maps=newHashMap();

}

/**

*加载参数

*@returnboolean

*/

privatebooleanisMethodMapsOk(){

intlenthN=methodNames.length;

intlenthV=methodValues.length;

if(lenthN!

=lenthV){

returnfalse;

}else{

for(inti=0;i

maps.put(methodNames[i],methodValues[i]);

}

this.methodLenth=methodValues.length;

returntrue;

}

}

/*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1