- Setting the ContentType for "text/xml"
- Support for GET, DELETE, and POST methods
- The POST method had to submit data (an XML fragment) and also returned data (XML fragment)
Following is what I hacked out and documenting here so I don't have to look it up again.
XmlDocument RestGet(string uri)
{
XmlDocument doc = new XmlDocument();
HttpWebRequest request =
(HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
request.ContentType = "text/xml";
HttpWebResponse response =
(HttpWebResponse)request.GetResponse();
doc = new XmlDocument();
doc.Load(response.GetResponseStream());
response.Close();
return doc;
}
static XmlDocument RestDelete(string uri)
{
XmlDocument doc = new XmlDocument();
HttpWebRequest request =
(HttpWebRequest)WebRequest.Create(uri);
request.Method = "DELETE";
request.ContentType = "text/xml";
HttpWebResponse response =
(HttpWebResponse)request.GetResponse();
doc = new XmlDocument();
doc.Load(response.GetResponseStream());
response.Close();
return doc;
}
static XmlDocument RestPost(string uri, string data)
{
XmlDocument doc = new XmlDocument();
HttpWebRequest request =
(HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "text/xml";
System.Text.UTF8Encoding encoding =
new System.Text.UTF8Encoding();
byte[] byte1 = encoding.GetBytes(data);
request.ContentLength = byte1.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(byte1, 0, byte1.Length);
requestStream.Close();
HttpWebResponse response =
(HttpWebResponse)request.GetResponse();
doc = new XmlDocument();
doc.Load(response.GetResponseStream());
response.Close();
return doc;
}