public static ReturnMessage <string> ReadResponse(this WebException webex) { ReturnMessage <string> retValue = new ReturnMessage <string>(); retValue.AddException(webex); var response = webex.Response; if (response != null) { Stream responseStream = null; try { responseStream = response.GetResponseStream(); using (var responseReader = new StreamReader(responseStream)) { var xml = responseReader.ReadToEnd(); //var errordata = XElement.Parse(xml); retValue.Message = xml; } } finally { if (responseStream != null) { responseStream.Dispose(); } } } return(retValue); }
public ReturnMessage <string> HttpPostRequest(XElement elements, ExecutionSettings settings, string actionParams, CredentialModel credentials, ApplicationUtil appUtil, Logger logger) { var returnMessage = new ReturnMessage <string>(); //Validate Credential Access Token if (!string.IsNullOrEmpty(credentials.AccessToken)) { //Stream reader = null; HttpWebRequest request = null; HttpWebResponse response = null; XmlDocument xmlDoc = new XmlDocument(); var urlParam = this.GetElementData(elements, "UploadURL", logger, string.Empty); var sourceKey = this.GetElementData(elements, "SourceKey", logger, string.Empty); var converter = new XmlToJsonConverter(elements.ToString()); var url = $"{credentials.BaseUrl}{urlParam}"; var jsonData = converter.Format().Message; request = (HttpWebRequest)WebRequest.Create(url); request.Headers.Add("orgId", credentials.OrganizationId); request.Headers.Add("Authorization", "Zoho-oauthtoken " + credentials.AccessToken); request.Method = actionParams; request.ContentType = "application/json"; string actualResponse = string.Empty; try { using (var streamWriter = new StreamWriter(request.GetRequestStream())) { streamWriter.Write(jsonData); streamWriter.Flush(); streamWriter.Close(); } using (response = (HttpWebResponse)request.GetResponse()) { using (Stream responseStream = response.GetResponseStream()) { using (StreamReader responseReader = new StreamReader(responseStream)) { actualResponse = responseReader.ReadToEnd(); xmlDoc = JsonConvert.DeserializeXmlNode(actualResponse, "Results"); } } } var xResponse = XElement.Parse(xmlDoc.InnerXml); if (!string.IsNullOrEmpty(sourceKey)) { xResponse.Add(new XElement("SourceKey", sourceKey)); } returnMessage.Value = xResponse.ToString(); returnMessage.Status = true; } catch (WebException wex) { var error = wex.ReadResponse(); response = wex.Response as HttpWebResponse; returnMessage.SetError(((int)response.StatusCode).ToString()); returnMessage.AddReturn(error.Message); logger.ErrorLog($"Post operation failed for url {url}", $"WebException : Status : {response.StatusCode}, Data is : {jsonData} and Response is : {actualResponse}"); } catch (Exception ex) { logger.ErrorLog($"Post operation failed for url {url}", ex); returnMessage.AddException(ex); } } else { returnMessage.SetError("401"); } return(returnMessage); }