Tuesday, July 10, 2012

WCF REST Service Consuming the Methods and Error Handling


private void Method3()
{
try
{
string URL = "http://Bookservices.intranet/Services/LibraryBookService.svc/insertBook";
string xmlTemplate = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<BookOrders>"
+ "<BookID>xxxx</BookID>"
+ "<BookName>215786</BookName>"
+ "<CustomerID>175254</CustomerID>"
+ "<RequestedDate>12/12/12</RequestedDate>"
+ "<Title>One</Title>"
+ "<Description>Two</Description>"
+ "</BookOrders>";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@URL);
request.Method = "POST";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlTemplate);
request.ContentType = "application/xml";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string xmlString = reader.ReadToEnd();
}
catch (Exception ex)
{
string xmlErrorTemplate = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<ErrorDetails>"
+ "<HtmlStatusCode>HtmlStatusCode</HtmlStatusCode>"
+ "<StatusDescription>StatusDescription</StatusDescription>"
+ "</ErrorDetails>";
string request;
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xmlErrorTemplate);
XmlNodeList xNodeList = xDoc.SelectNodes("/ErrorDetails");
foreach (XmlNode xn in xNodeList)
{
xn["HtmlStatusCode"].InnerText = HttpContext.Current.Response.StatusCode.ToString();
xn["StatusDescription"].InnerText = "Method Name is not Correct..";
request = xn.OuterXml;
Label1.Text = request;

}
}


}

No comments: