肥皂错误:序言中不允许包含内容

时间:2019-11-12 18:07:02

标签: c# xml soap

执行SOAP请求时,得到响应序言中不允许内容

到目前为止,我已经尝试过:

  • 添加声明(具有不同的参数)
  • 更改编码
  • 删除序言中的所有字符(没有)
  • 更改命名空间顺序
  • 还有更多我可能不记得的

XML是有效且格式正确的,所以我不知道我的错误在哪里。

这是我的代码:

        // Set the request text.
        string text = @"<ns2:Envelope xmlns:ns2=""http://www.w3.org/2003/05/soap-envelope"">
                <ns2:Header>
                ...
                </ns2:Header>
                <ns2:Body>
                ...
                </ns2:Body>
            </ns2:Envelope>";

        // Create the XDocument object.
        var reqDocument = new XDocument(new XDeclaration("1.0", "UTF-8", "yes"), XElement.Parse(text));

        // Create the web request.
        var request = (HttpWebRequest)WebRequest.Create(@"https://example.com");
        request.Method = "POST";

        // Send the web request.
        using (Stream stream = request.GetRequestStream())
            reqDocument.Save(stream);

        // Get the response.
        string response = null;
        using (WebResponse ws = request.GetResponse())
            using (var rd = new StreamReader(ws.GetResponseStream()))
                response = rd.ReadToEnd();

我还尝试在请求中包含标头。结果相同。

这是另一个(匿名)示例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Envelope xmlns="http://example.com" xmlns:ns2="http://www.w3.org/2003/05/soap-envelope" xmlns:ns3="http://example.com">
  <ns2:Header>
    <Auth>
      <UserName>user</UserName>
    </Auth>
  </ns2:Header>
  <ns2:Body>
    <ns3:Customer>
      <CustomerCode>22222222</CustomerCode>
    </ns3:Customer>
  </ns2:Body>
</ns2:Envelope>

0 个答案:

没有答案