protected internal static ApiResponse <T> GetApiResponse <T>(BaseClient.RequestEnvelope envelope, ICredentials credentials) { if (envelope.Exception != null) { ApiResponse <T> apiResponse = new ApiResponse <T>(); apiResponse.StatusCode = HttpStatusCode.InternalServerError; apiResponse.ReasonPhrase = envelope.Exception.Message; apiResponse.Content = envelope.Exception.ToString(); apiResponse.IsSuccessStatusCode = false; return(apiResponse); } if (credentials != null) { envelope.Request.Credentials = credentials; } try { using (HttpWebResponse response = (HttpWebResponse)envelope.Request.GetResponse()) return(BaseClient.GetApiResponse <T>(response)); } catch (WebException ex) { using (HttpWebResponse response = (HttpWebResponse)ex.Response) return(BaseClient.GetApiResponse <T>(response)); } }
internal static BaseClient.RequestEnvelope GetHttpWebRequest(Uri uri, HttpMethod method, HttpRequestHeaders headers, string bearerToken, byte[] content = null, string contentType = "application/json") { BaseClient.RequestEnvelope requestEnvelope = new BaseClient.RequestEnvelope() { Request = (HttpWebRequest)WebRequest.Create(uri) }; requestEnvelope.Request.Method = method.Method; if (headers != null) { foreach (KeyValuePair <string, IEnumerable <string> > header in (HttpHeaders)headers) { requestEnvelope.Request.Headers.Add(header.Key, string.Join(",", header.Value)); } } if (!string.IsNullOrWhiteSpace(bearerToken)) { requestEnvelope.Request.Headers[HttpRequestHeader.Authorization] = string.Format("bearer {0}", (object)bearerToken); } if (content != null) { requestEnvelope.Request.ContentLength = (long)content.Length; requestEnvelope.Request.ContentType = contentType; try { requestEnvelope.Request.GetRequestStream().Write(content, 0, content.Length); } catch (Exception ex) { requestEnvelope.Exception = ex; } } return(requestEnvelope); }
protected internal static ApiResponse GetApiResponse(BaseClient.RequestEnvelope envelope, ICredentials credentials) { return((ApiResponse)BaseClient.GetApiResponse <object>(envelope, credentials)); }