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

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

我不能使用mtom或dime.ie,因为我使用的是httpwebrequest。 我也无法使用WCF。

这是使用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请求接受XML结构化数据(通过POST)。 如果您需要更多示例,可以在此处获得几个function齐全的示例: http ://nbug.codeplex.com/SourceControl/list/changesets(单击右侧“最新版本”标签下的“浏览”,然后导航到“ NBug \提交\跟踪\ Redmine.cs“)