2012-11-06 91 views
0

我使用C#客戶端連接到使用Delphi編寫的RemObjects SDK SOAP服務器。我可以在初始登錄,但隨後的請求需要定製SOAP頭,看起來像這樣:如何使用C#將自定義標題添加到SOAP請求中?

<SOAP-ENV:Header SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:NS1="urn:MyAPI"> 
    <NS1:ROClientIDHeader xsi:type="NS1:ROClientIDHeader"> 
     <ID xsi:type="xsd:string">{3EC5A9DF-C6DC-4BFB-8134-37DDCF07910D}</ID> 
    </NS1:ROClientIDHeader> 
    </SOAP-ENV:Header> 

我現有的代碼如下所示:

using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class MainForm : Form 
    { 
     public MainForm() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      // Create a new instance of the login service 
      MyLibrary.LoginServiceClient LoginClient = new MyLibrary.LoginServiceClient(); 

      // Call the Login method on the server 
      MyLibrary.TLoginInfo LoginInfo = LoginClient.Login("Administrator", "master", 0, 0, MyLibrary.TClientType.ctWindowsClient); 

      // Set the Session ID 
      var SessionID = LoginInfo.SessionId; 

      // Create a new instance of the Utils service 
      MyLibrary.UtilsClient UtilsClient = new MyLibrary.UtilsClient(); 

      // Set the SOAP header // 
      // <SOAP-ENV:Header SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:NS1="urn:EasyIPv6API"> 
      // <NS1:ROClientIDHeader xsi:type="NS1:ROClientIDHeader"> 
      //  <ID xsi:type="xsd:string">{3EC5A9DF-C6DC-4BFB-8134-37DDCF07910D}</ID> 
      // </NS1:ROClientIDHeader> 
      // </SOAP-ENV:Header> 

      // Make the call 
      var AddResult = UtilsClient.AddValues(1, 1); 
     } 
    } 
} 

如何自定義頭添加到請求?請記住,我目前完全不瞭解C#。

+0

類似的問題在這裏 - > http://stackoverflow.com/a/1246829/1045728 –

回答

0

如果後續請求期望Soap Header,那麼UtilsClient應該有一個屬性可以像SoapHeaderValue一樣暴露,您可以設置它。

+0

這就是我所期望的,但它不 – norgepaul

相關問題