如何使用C#将自定义标头添加到SOAP请求中



我使用C#客户端连接到用Delphi编写的RemoBjects SDK 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#。

在remobjects的帮助下,我们终于得到了此功能。如果有人有兴趣,他们就制作了一篇文章,解释了它的完成方式。您可以找到它http://wiki.remobjects.com/wiki/wip:consuming_remobjects_soap_services_with_third_party_party_clients

如果后续请求期望肥皂标头,则UTILSCLIENT应该将属性曝光,例如SoapheDervalue,您可以设置。

相关内容

  • 没有找到相关文章

最新更新