带有XML结构化数据的c# HttpWebRequest

本文关键字:HttpWebRequest 数据 XML 结构化 带有 | 更新日期: 2023-09-27 17:49:57

我正在开发一个第三方web服务的客户端。目的是将xml文件发送到服务器。我应该如何将xml文件附加到httpwebrequest?需要什么contentType ?更多的建议吗?

我不能使用mtom或dime。因为我使用httpwebrequest。我也无法使用WCF

带有XML结构化数据的c# HttpWebRequest

这是使用HttpWebRequest发送XML结构化数据的一个非常基本的方法(顺便说一下,您需要使用request)。ContentType = "application/xml";):

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(myUrl));
request.Method = "POST";
request.ContentType = "application/xml";
request.Accept = "application/xml";
XElement redmineRequestXML =
    new XElement("issue",
    new XElement("project_id", 17)
);
byte[] bytes = Encoding.UTF8.GetBytes(redmineRequestXML.ToString());
request.ContentLength = bytes.Length;
using (Stream putStream = request.GetRequestStream())
{
    putStream.Write(bytes, 0, bytes.Length);
}
// Log the response from Redmine RESTful service
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
    Logger.Info("Response from Redmine Issue Tracker: " + reader.ReadToEnd());
}

我在我的一个项目(NBug)中使用它向我的Redmine问题跟踪器提交问题报告,该跟踪器通过web请求(通过POST)接受XML结构化数据。如果你需要更多的例子,你可以在这里得到几个功能齐全的例子:http://nbug.codeplex.com/SourceControl/list/changesets(点击右侧"最新版本"标签下的"浏览",然后导航到"NBug'Submit'Tracker'Redmine.cs")