Ответ 1
Вот очень простой метод отправки XML-структурированных данных с использованием HttpWebRequest (кстати, вам нужно использовать 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, который принимает структурированные данные XML через веб-запросы (через POST). Если вам нужны дополнительные примеры, вы можете получить здесь несколько полнофункциональных примеров: http://nbug.codeplex.com/SourceControl/list/changesets (нажмите "Обзор" под меткой "Последний Verion" справа, перейдите к "NBug\Submit\Tracker\Redmine.cs" )