zoukankan      html  css  js  c++  java
  • WebService应用实列

    1.新建项目WebService1

    2.创建APISoapHeader,继承

    System.Web.Services.Protocols.SoapHeader

    APISoapHeader代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    namespace WebService1
    {
    public class APISoapHeader:System.Web.Services.Protocols.SoapHeader
    {
    private string _localhostkey = string.Empty;
    private string _secretkey = string.Empty;

    /// <summary>
    /// 构造函数
    /// </summary>
    public APISoapHeader()
    {
    //配置文件的SoapHeader_APIKey
    this._localhostkey = System.Configuration.ConfigurationManager.AppSettings.Get("SoapHeader_APIKey");
    }

    /// <summary>
    /// 获取或设置密钥
    /// </summary>
    public string SecretKey
    {
    get { return this._secretkey; }
    set { this._secretkey = value; }
    }

    /// <summary>
    /// 是否为安全的API调用
    /// </summary>
    public bool IsSafeCall
    {
    get
    {
    if (this._localhostkey == this._secretkey)
    return true;
    else
    return false;
    }
    }
    }
    }

    WebService1项目的配置文件(web.config)

      <appSettings>
    <!--TMIS项目API调用的密钥-->
    <add key="SoapHeader_APIKey" value="1127d575-5633-4b97-a0fd-bb6bfb0d27de"/>
    </appSettings>

    Service1.asmx 代码结构

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;

    namespace WebService1
    {
    /// <summary>
    /// Service1 的摘要说明
    /// </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 Service1 : System.Web.Services.WebService
    {
    public APISoapHeader soapHeader = new APISoapHeader();//声明header
    [System.Web.Services.Protocols.SoapHeader("soapHeader")]//表明调用时需要传入header
    [WebMethod]
    public string HelloWorld()
    {
    if (!soapHeader.IsSafeCall)//传入的自定义APISoapHeader不正确,讲返回“你好!”
    {
    return "你好!";
    }
    return "Hello World";
    }
    }
    }

    客户端调用:引用服务应用,ServiceReference1

     ServiceReference1.Service1SoapClient soap = new WebApplication1.ServiceReference1.Service1SoapClient();
    protected void Page_Load(object sender, EventArgs e)
    {
    ServiceReference1.APISoapHeader SoapHeader = new WebApplication1.ServiceReference1.APISoapHeader();
    //设置SoapHeader Key
    SoapHeader.SecretKey = "1127d575-5633-4b97-a0fd-bb6bfb0d27de 5";
    //WebService的方法HelloWorld没有使用APISoapHeader作参数,但是声明了 [System.Web.Services.Protocols.SoapHeader("soapHeader")]
    Response.Write(soap.HelloWorld(SoapHeader));
    }



     

  • 相关阅读:
    Spark ML 文本的分类
    Linxu 安装Scala
    Nginx访问非常慢
    mysql:unknown variable 'default-character-set=utf8'
    mysql 1045
    mysql: error while loading shared libraries: libnuma.so
    elasticsearch: can not run elasticsearch as root
    Java中的Class类
    ClassLoader工作机制
    遍历机器查日志
  • 原文地址:https://www.cnblogs.com/luofuxian/p/2371000.html
Copyright © 2011-2022 走看看