使用HttpWebRequest发送XML结构化数据,并反序列化返回XML
一般来说,发送大型数据到Web服务端,基本使用post方法,这是使用HttpWebRequest发送XML结构化数据的一种非常基本的方法。
示例代码如下:
//外部参数
XElement pRequestXML;
//
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(myUrl));
request.Method = "POST";
request.ContentType = "application/xml";
request.Accept = "application/xml";
byte[] pBytes = Encoding.UTF8.GetBytes(pRequestXML.ToString());
request.ContentLength = pBytes.Length;
using (Stream pStream = request.GetRequestStream())
{
pStream.Write(pBytes, 0, pBytes.Length);
}
// Log the response from Redmine RESTful service
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
var pStr = reader.ReadToEnd();
Logger.Info("Response from web server: " + pStr);
using (StringReader sr = new StringReader(pStr))
{
XmlSerializer xz = new XmlSerializer(typeof(Product));
product = xz.Deserialize(sr) as Product;
return product;
}
}