C# 如何将生成的XML发布到URL?
我试图将生成的XML发送到URL,但HttpWebResponse不断出现错误:C# 如何将生成的XML发布到URL?,c#,C#,我试图将生成的XML发送到URL,但HttpWebResponse不断出现错误: 远程服务器返回错误:(417)预期失败 这是我的密码 //POST to URL var httpRequest = (HttpWebRequest)WebRequest.Create("http://xxx.xxx.xxx.xxx:8000"); httpRequest.Method = "POST"; httpRequest.Cont
远程服务器返回错误:(417)预期失败 这是我的密码
//POST to URL
var httpRequest = (HttpWebRequest)WebRequest.Create("http://xxx.xxx.xxx.xxx:8000");
httpRequest.Method = "POST";
httpRequest.ContentType = "text/xml; charset=utf-8";
httpRequest.ProtocolVersion = HttpVersion.Version11;
//Set appropriate headers
var xmlWriterSettings = new XmlWriterSettings
{
NewLineHandling = NewLineHandling.None,
Encoding = Encoding.ASCII
};
using (var requestStream = httpRequest.GetRequestStream())
{
xmlDoc.Save(requestStream);
}
using (var response = (HttpWebResponse)httpRequest.GetResponse())
using (var responseStream = response.GetResponseStream())
{
// Response Code to see if the request was successful
var responseXml = new XmlDocument();
responseXml.Load(responseStream);
using (var repp = XmlWriter.Create("response.xml"))
{
responseXml.Save(repp);
}
}
远程服务器返回错误:(417)Expectation Failed 417表示服务器无法通过
Expect
HTTP头满足客户端指示的要求。我不熟悉HttpWebRequest
及其默认头,但您是否可以检查正在发送的实际HTTP头,特别是任何Expect头?如下所示?-虽然这与您的实际问题无关,但我想指出,声明内容类型为“text/xml;charset=utf-8”
,然后使用编码.ASCII
,这两者之间存在不一致之处。感谢大家设法解决了这一问题,只需将HttpWebRequest.ProtocolVersion
更改为HttpVersion.Version10