高分求教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