当前位置:编程学习 > C#/ASP.NET >>

高分求教webservice设置header问题

目前有一个webservice是发布在java环境中的,服务器启用了安全模式,调用业务接口前首先调用server端的login接口,获得返回的sessionId,然后调用业务接口传数据时必须在soap头中带上SessionId。

如下红字部分:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:m0="http://com.kingdee.eas.base.btp.app.BTPManager/isPropOwner/parameter/promote">
<SOAP-ENV:Header>
<ns1:SessionId xmlns:ns1="http://login.webservice.bos.kingdee.com">ada894c0-8223-41dc-b816-61eb67dc38bd</ns1:SessionId>
</SOAP-ENV:Header> <SOAP-ENV:Body>
<m:isPropOwner xmlns:m="http://com.kingdee.eas.base.btp.app.BTPManager/Service">
<m0:bosTypeString>BF76D8D1</m0:bosTypeString>
<m0:propName>id</m0:propName>
</m:isPropOwner>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

但是业务接口的wsdl并没有包含对header的描述,需要手工添加头信息。
我用java 测试axis是可以设置header的,但是在.net中始终不能通过,
我.net中根据网上的方式  在service中添加了一个soapheader
但是不知道怎么设置namespace。
.net 部分代码如下  
service中添加的soapHeader:

 public partial class WSWSImportTMSCreditBillFacadeSrvProxyService : System.Web.Services.Protocols.SoapHttpClientProtocol {



        
        public class loginToken : SoapHeader
        {
           
            public string SessionId;

            public loginToken(){
                
               // this.
               //   this.
               // "http://login.webservice.bos.kingdee.com";
            }

             
        }


        public loginToken Header = new loginToken();




        private System.Threading.SendOrPostCallback importTMSCreditBill_xmlOperationCompleted;
。。。。。。。。
        



调用接口:
  private void btnSendData_Click(object sender, EventArgs e)
        {
               try
            {
                EasCredit.WSWSImportTMSCreditBillFacadeSrvProxyService P1 = new EasInterFace.EasCredit.WSWSImportTMSCreditBillFacadeSrvProxyService();

                string xml = "业务数据。。。。";
              
                 EasCredit.WSWSImportTMSCreditBillFacadeSrvProxyService.loginToken loginHeader = new EasCredit.WSWSImportTMSCreditBillFacadeSrvProxyService.loginToken();
                   loginHeader.SessionId = sessionID; // sessionID值没有问题
                   
                   P1.Header = loginHeader;
                   string[] s = P1.importTMSCreditBill_xml(xml);

                this.textBox1.Text = s[0] + s[1];

               // MessageBox.Show(s[0] + s[1]);
            }
               catch (Exception err)
               {
                   string s = err.Message;
                   this.textBox1.Text = s;
                  // MessageBox.Show(s);
               }
        }


这样header始终没有传过去

webservice .net webservice soap header .net调用webservice webservice header --------------------编程问答-------------------- 怎么会没人会呢? --------------------编程问答-------------------- 不懂帮顶
补充:.NET技术 ,  Web Services
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,