public static async Task <T> Handle <T>(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { var error = JsonConvert.DeserializeObject <ErrorResponse>(json, JsonSerializerSettingsFactory.Create()) ?? ErrorResponse.NewEmpty(); throw new GiphyApiClientException($"Error with request. HTTP response code: '{response.StatusCode}'. Message: '{error.Message}'.", (int)response.StatusCode); } return(JsonConvert.DeserializeObject <T>(json, JsonSerializerSettingsFactory.Create())); }
public static void Register(HttpConfiguration config, IContainer container) { // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}", new { id = RouteParameter.Optional }); config.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); config.Formatters.JsonFormatter.SerializerSettings = JsonSerializerSettingsFactory.Create(container.Resolve <IComponentContext>()); config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler()); config.Services.Add(typeof(IExceptionLogger), new GlobalErrorLogger()); config.EnableCors(new EnableCorsAttribute("*", "*", "GET, POST, OPTIONS, PUT, DELETE")); }