dotnet调java webservice C#调java webservice 头部验证 SoapHeader


       这几天帮朋友弄一个dotnet 的webservice调用java webservice程序,java这方为服务器端,提供服务,使用XFire写的,客户端用的是dotnet,我们都知道,webservice是用soap协议传输的,不同语言都支持这个协议dotnet更不用说了,dotnet可以根据提供的wsdl描述语言来生成调用程序,这一步肯定是没有问题的。但wsdl指令并不能生成头部,需要程序员自己手动添加。

        问题就出在这个头部信息,先来看一个代码

     声明自己携带的头部,这个成员变量作为客户端动态调用程序的一部分

public MySoapHeader header;

     为服务方法声明头部

 [System.Web.Services.Protocols.SoapHeaderAttribute("header")]
 public string method([System.Xml.Serialization.XmlElementAttribute(IsNullable = true)] string p0, [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)] string p0, [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)] string p2)


    声明自己的头部类:   

        [System.Xml.Serialization.XmlTypeAttribute(Namespace = "")]
        [System.Xml.Serialization.XmlRootAttribute(ElementName = "token",  IsNullable = false)]
        public class MySoapHeader : System.Web.Services.Protocols.SoapHeader
        {

            /// <remarks/>
            public string username;

            /// <remarks/>
            public string password;

            

        }

         username和password是需要验证的参数名称,这个名称必须与提供服务代码的名称一致,

 

        注意红色的字体,这些地方必须和提供服务的那一方一致,否则就不能连接上服务器,并且会产生很多莫名其妙的错误,这些红色的地方区分大小写,以上头部信息产生的xml为:

<header >
	<token>
		<username>aaa</username>
		<password>pp</password>
	</token>
</header>


     这个格式必须和服务端的一致,否则请求将会失败

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值