ASP.NET后台为移动端提供接口

 引言

        最近公司交给我个任务,为IOS移动端写接口。现有公司的软件是ASP.NET做的,现在想把某些功能移植到IOS APP上。大多数对外接口会实现webservice方法,但经理却让用http接口来进行交互。

区别

         怀着一颗好奇心了解了一下webservice和httpservice的区别。

         webservice是使用soap协议得到想要的东西,soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式Content-type设置为:text/xml任何数据都可以xml化。webservice相比httpservice能处理些更加复杂的数据类型。如果在后台调用一个其它应用的服务,这个时候,必须要用webService的方式来调用。

         httpsevice通过post和get得到想要的东西。在处理数据上HTTPService效率较高。当调用一个本服务的时候,不涉及跨域的问题,可以使用HttpService的方式。

         相比于httpservice,webservice接口中实现的方法和要求参数一目了然;不用担心大小写问题,不用担心中文urlencode问题,代码中不用多次声明认证(账号、密码)参数;传递参数可以为数组、对象等。但是由于它由于xml解析,速度可能会有所减低。

         当然,现在的开放平台都是用的HTTP实现的,webservice完全可以被httpservice替代。

例子

         基于httpservice协议一个提供接口的登录例子(Web层):       

         以下接口通过request获取参数,然后通过调B层,B层调D层进行返回,提供json字符串参数。

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace UTRWebService
{
    public partial class Problemdetail : System.Web.UI.Page
    {
        BLL.ProblemDataList bll = new BLL.ProblemDataList();
        protected void Page_Load(object sender, EventArgs e)
        {
            Bing();
        }

        public void Bing()
        {


            try
            {
                string problem = DataSwitch.ConvertObjectToString(Request["problem"]);

                if (!string.IsNullOrEmpty(problem))
                {
                    StringBuilder str = new StringBuilder();

                    DataTable  problemdetail = bll.getproblemdetail(problem);
                       IList<Model.ProblemDerail> ProblemContent = bll.getproblemContent(problem);

                       if (problemdetail.Rows.Count > 0)
                       {
                           string strl = problemdetail.Rows[0]["ProblemDescribe"].ToString();
                           string regexstr = @"<[^>]*>";    //去除所有的标签
                           strl = Regex.Replace(strl, regexstr, string.Empty, RegexOptions.IgnoreCase);

                           str.Append("{ \"id\":" + problemdetail.Rows[0]["ProblemID"] + ",\"zhaiyao\":\"" + problemdetail.Rows[0]["Title"] + "\",\"fxsj\":\"" + problemdetail.Rows[0]["CreateTime"].ToString() + "\",\"jjcd\":\"" + problemdetail.Rows[0]["PriorityName"].ToString() + "\",\"wtmx\":\"" + strl + "\",\"lines\":" + ToJson.toJson(ProblemContent) + "}");
                           Response.Write(str.ToString());
                       }

                       else
                       {
                           string result = "暂无数据";
                           Response.Write("{\"success\":\"" + result + "\"}");
                       }


                  

                }
                else
                {
                    string result = "暂无数据";
                    Response.Write("{\"success\":\"" + result + "\"}");
                }
                //}
                //else
                //{
                //    // List<Model.ProblemDataList> ProblemList = new List<Model.ProblemDataList>();
                //    string result = "false";
                //    Response.Write("{\"success\":\"" + result + "\"}");

                //    //Response.Write(ToJson.toJson(ProblemList));
                //}
            }
            catch (Exception ex)
            {
                string result = "false";
                Response.Write("{\"success\":\"" + result + "\"}");
            }


        }

    }
}

小结

       向移动端或是PC端提供接口,看了这些,相信读者对其有了一定的了解,用WebService还是HttpService视情况而定,如果文中有不妥之处还请斧正。

        

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值