zoukankan      html  css  js  c++  java
  • 客户端代理浅析

    客户端代理浅析
    •每个Service类对应客户端一个代理类
    •每个代理类为Sys.Net.WebServiceProxy类的子类
    •代理类的每个方法均对应一个类的静态方法
    •最终由Sys.Net.WebServiceProxy.invoke方法发出请求

    aspx
        <form id="form1" runat="server">
            
    <asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Debug" />
            
            
    <input type="button" value="Get Range Random" onclick="getRandom(50, 100)" />
            
            
    <script language="javascript" type="text/javascript">
                function getRandom(minValue, maxValue)
                {
                    Sys.Net.WebServiceProxy.invoke(
                        
    "Services/UseHttpGetService.asmx",
                        
    "GetRangeRandom",
                        
    true,
                        { 
    "minValue" : minValue,
                          
    "maxValue" : maxValue},
                        onSucceeded,
                        
    null,
                        
    null,
                        
    -1);
                }
                
                function onSucceeded(result)
                {
                    alert(result);
                }
            
    </script>
        
    </form>
    没有将ScriptManagerInlineScript="true",不是不使用客户端代理.直接使用Sys.Net.WebServiceProxy.invoke方法调用WebService。

    UseHttpGetService.asmx
    <%@ WebService Language="C#" Class="UseHttpGetService" %>

    using System;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Web.Script.Services;

    [WebService(Namespace 
    = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo 
    = WsiProfiles.BasicProfile1_1)]
    [ScriptService]
    public class UseHttpGetService  : System.Web.Services.WebService
    {
        [WebMethod]
        
    public int GetRandom()
        {
            
    return new Random(DateTime.Now.Millisecond).Next();
        }

        [WebMethod]
        [ScriptMethod(UseHttpGet
    =true)]
        
    public int GetRangeRandom(int minValue, int maxValue)
        {
            
    return new Random(DateTime.Now.Millisecond).Next(minValue, maxValue);
        }
    }
  • 相关阅读:
    python并发编程之深入理解yield from
    python中的多进程编程
    Python并发concurrent、Future类、异步
    【Socket通信】关于Socket通信原理解析及python实现
    深入理解Python元类
    Django RestFrameWork 源码解析
    Django的Restful规范
    小程序colorUI框架初步使用教程
    类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 (KeyMouseGo)
    如何在postgresql中,一句sql完成未有数据记录的insert,再update的操作
  • 原文地址:https://www.cnblogs.com/timy/p/1178280.html
Copyright © 2011-2022 走看看