• 客户端代理浅析


    客户端代理浅析
    •每个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);
        }
    }
  • 相关阅读:
    docker基础概念
    面试题
    python总结【来自Runoob】
    如何实现在分组的情况下,以另一个时间字段查询出结果?
    Java FIle类和IO流
    HTML5 基础知识(1)——基本标签
    数据库个人笔记(3) -- 基础篇
    数据库个人笔记(2) -- 基础篇
    数据库个人笔记(1)-- 基础篇
    python 基础学习笔记(8)--装饰器
  • 原文地址:https://www.cnblogs.com/timy/p/1178280.html
Copyright © 2020-2023  润新知