zoukankan      html  css  js  c++  java
  • web service

    一、 Web service介绍:

    1. Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML

    2. Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。

    3. 同时,web service可以支持SOA编程,就是指在业务层的基础上添加一个服务层,服务层主要提供应用层需要的数据,就是通过web service的技术提供数据。

    二、新建web service服务

    三、新建一个webform应用程序app,去调用上面的服务

    1. 添加服务引用,点击发现,如下:因为是本地的,所以点击发现,如果调用远程的,就需要输入ip地址和端口号。 

    2. 如果服务端添加新方法,那么就需要执行以下操作,就能看到最新的方法

    3.  web service返回list类型的数据,需要将数据进行json序列化才可以,不然会报异常。具体代码如下:

      /// <summary>
        /// WebService1 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
        // [System.Web.Script.Services.ScriptService]
        public class WebService1 : System.Web.Services.WebService
        {
    
            [WebMethod]
            public string HelloWorld()
            {
                return "Hello World";
            }
             [WebMethod]
            public int Add(int a, int b)
            {
                return a + b;
            }
            [WebMethod]
             public string LoadUserInfoList()
             {
                 IBLL.IUserInfoService UserInfoService = new BLL.UserInfoService();
               List<Model.UserInfo>list= UserInfoService.LoadEntities(u=>true).ToList();
              return Common.SerializeHelper.SerializeToString(list);
                //SOA:面向服务。
             }
        }

    4. 调用服务层的web service

    ServiceReference1.WebService1SoapClient client = new ServiceReference1.WebService1SoapClient();
                // int sum= client.Add(3, 6);
            
           //直接根据上方对象调用其中的方法 Response.Write(client.LoadUserInfoList());

     5. 调用外部的web service

    调用天气预报的webservice示例:

    a. 请求地址:http://www.webxml.com.cn/webservices/weatherwebservice.asmx

    b. 右击添加服务引用

    c. 容易出的一个错误,检查以后发现,其中有两个下面的配置文件,因为重复了,所以报错,取掉其中一个就好了

    d. 前端界面中放置一个GridView,然后调用数据,绑定在界面中。

    //先new出一个对象
                ServiceReference2.WeatherWSSoapClient client = new ServiceReference2.WeatherWSSoapClient();
                //调用其中的一个方法,因为返回的类型是dateset类型的数据
                DataSet ds=client.getRegionDataset();
                //将第tables0的数据绑定在数据中
                this.GridView1.DataSource = ds.Tables[0];
                this.GridView1.DataBind();

    e. 最终显示结果如下:

  • 相关阅读:
    动态规划 最长公共子序列 LCS,最长单独递增子序列,最长公共子串
    梳排序(Comb sort)
    地精排序(Gnome Sort) 算法
    vs2010 调试 调用堆栈 窗口
    vs2010 条件断点 has changed是什么意思?
    vs2010根据字符串内容添加断点
    vs2010 调试中监视变量
    vs2010断点使用技巧
    区间重合判断(pojg校门外的树)
    转:Linus:利用二级指针删除单向链表
  • 原文地址:https://www.cnblogs.com/wangjinya/p/10634355.html
Copyright © 2011-2022 走看看