执行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>