Android客户端调用ASP.net的WebService

在Android端为了与服务器端进行通信有几种方法:1、Socket通信 2、WCF通信 3、WebService通信。因为ASP.net中发布WebService非常简单,所以我们选择用WebService来进行通信。在Android端调用.Net的WebService又有两种方法:1、开源的ksoap-2类库进行soap通信 2、通过Http协议来调用,我们选择第二种方法,简单快捷。

首先,先准备服务器端,新建一个名为TestService.asmx的WebService,并在web.config里面的的system.Web节点添加

 <webServices>
        <protocols>
          <add name= "HttpPost"/>
          <add name= "HttpGet"/>
        </protocols>
      </webServices>
否则通过“WsUrl/方法”的路径访问WebService时会出现 因 URL 意外地以“/方法名”结束,请求格式无法识别。执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 ”的错误。在TestService.asmx中新建两个方法,一个带参数,一个不带参数,如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;//[ScriptMethod(ResponseFormat=ResponseFormat.Json)]所需引用的命名空间
using BLL;
using Model;
namespace Test.WebServices
{
    /// <summary>
    /// TestService的摘要说明
    /// </summary>
    [WebService(Namespace = "http://www.testservice.com/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
     [System.Web.Script.Services.ScriptService]//这个属性必须把注释取消掉
    public class TestService: System.Web.Services.WebService
    {

        [WebMethod]      
        [ScriptMethod(ResponseFormat=ResponseFormat.Json)]
        public string HelloWorld()
        {
            return "Hello World";
        }
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]//表示返回给客户端的是JSON数据格式
        public List<ModelUser> GetUserList()
        {
            BLLUser bllUser = new BLLUser();
            return bllUser.GetModelList();
        }
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public ModelUser GetUserByUserName(string strUserName)
        {
            BLLUser bllUser = new BLLUser();
            return bllUser.GetModel(strUserName);
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值