private static void EnsureSuccessfulResponse(HttpClient client, HttpStatusCode expectedStatusCode = HttpStatusCode.OK) { HttpWebResponse response = null; try { response = (HttpWebResponse)client.GetResponse(); if (response != null && expectedStatusCode != response.StatusCode) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, String.Empty)); } } catch (WebException e) { if (e.Response == null) { throw; } response = (HttpWebResponse)e.Response; if (expectedStatusCode != response.StatusCode) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, e.Message), e); } } finally { if (response != null) { response.Close(); response = null; } } }
private System.Uri GetResponseUri(HttpClient client) { using (WebResponse response = client.GetResponse()) { if (response == null) { object[] args = new object[] { this.Uri }; throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, NuGetResources.UnableToResolveUri, args)); } return(response.ResponseUri); } }
private Uri GetResponseUri(HttpClient client) { using (WebResponse response = client.GetResponse()) { if (response == null) { throw new InvalidOperationException( String.Format(CultureInfo.CurrentCulture, NuGetResources.UnableToResolveUri, Uri)); } return response.ResponseUri; } }
private Uri GetResponseUri(HttpClient client) { using (WebResponse response = client.GetResponse()) { if (response == null) { throw new InvalidOperationException( String.Format(CultureInfo.CurrentCulture, NuGetResources.UnableToResolveUri, Uri)); } return(response.ResponseUri); } }
private static void EnsureSuccessfulResponse(HttpClient client, HttpStatusCode?expectedStatusCode = null) { HttpWebResponse response = null; try { response = (HttpWebResponse)client.GetResponse(); if (response != null && ((expectedStatusCode.HasValue && expectedStatusCode.Value != response.StatusCode) || // If expected status code isn't provided, just look for anything 400 (Client Errors) or higher (incl. 500-series, Server Errors) // 100-series is protocol changes, 200-series is success, 300-series is redirect. (!expectedStatusCode.HasValue && (int)response.StatusCode >= 400))) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, String.Empty)); } } catch (WebException e) { if (e.Response == null) { throw; } response = (HttpWebResponse)e.Response; if (expectedStatusCode != response.StatusCode) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, e.Message), e); } } finally { if (response != null) { response.Close(); response = null; } } }
private static void EnsureSuccessfulResponse(HttpClient client) { WebResponse response = null; try { response = client.GetResponse(); } catch (WebException e) { if (e.Response == null) { throw; } response = e.Response; var httpResponse = (HttpWebResponse)e.Response; if (httpResponse != null && !AcceptableStatusCodes.Contains(httpResponse.StatusCode)) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, httpResponse.StatusDescription, e.Message), e); } } finally { if (response != null) { response.Close(); response = null; } } }
/// <summary> /// Ensures that success response is received. /// </summary> /// <param name="client">The client that is making the request.</param> /// <param name="expectedStatusCode">The exected status code.</param> /// <returns>True if success response is received; false if redirection response is received. /// In this case, _baseUri will be updated to be the new redirected Uri and the requrest /// should be retried.</returns> private bool EnsureSuccessfulResponse(HttpClient client, HttpStatusCode?expectedStatusCode = null) { HttpWebResponse response = null; try { response = (HttpWebResponse)client.GetResponse(); if (response != null && ((expectedStatusCode.HasValue && expectedStatusCode.Value != response.StatusCode) || // If expected status code isn't provided, just look for anything 400 (Client Errors) or higher (incl. 500-series, Server Errors) // 100-series is protocol changes, 200-series is success, 300-series is redirect. (!expectedStatusCode.HasValue && (int)response.StatusCode >= 400))) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, String.Empty)); } return(true); } catch (WebException e) { if (e.Response == null) { throw; } response = (HttpWebResponse)e.Response; // Check if the error is caused by redirection if (response.StatusCode == HttpStatusCode.MultipleChoices || response.StatusCode == HttpStatusCode.MovedPermanently || response.StatusCode == HttpStatusCode.Found || response.StatusCode == HttpStatusCode.SeeOther || response.StatusCode == HttpStatusCode.TemporaryRedirect) { var location = response.Headers["Location"]; Uri newUri; if (!Uri.TryCreate(client.Uri, location, out newUri)) { throw; } _baseUri = new Lazy <Uri>(() => newUri); return(false); } if (expectedStatusCode != response.StatusCode) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, e.Message), e); } return(true); } finally { if (response != null) { response.Close(); response = null; } } }
static Stream GetResponseStream (Uri uri) { if (uri.IsFile) { var request = WebRequest.Create (uri); return request.GetResponse ().GetResponseStream (); } var httpClient = new HttpClient (uri); return httpClient.GetResponse ().GetResponseStream (); }
/// <summary> /// Ensures that success response is received. /// </summary> /// <param name="client">The client that is making the request.</param> /// <param name="expectedStatusCode">The exected status code.</param> /// <returns>True if success response is received; false if redirection response is received. /// In this case, _baseUri will be updated to be the new redirected Uri and the requrest /// should be retried.</returns> private bool EnsureSuccessfulResponse(HttpClient client, HttpStatusCode? expectedStatusCode = null) { HttpWebResponse response = null; try { response = (HttpWebResponse)client.GetResponse(); if (response != null && ((expectedStatusCode.HasValue && expectedStatusCode.Value != response.StatusCode) || // If expected status code isn't provided, just look for anything 400 (Client Errors) or higher (incl. 500-series, Server Errors) // 100-series is protocol changes, 200-series is success, 300-series is redirect. (!expectedStatusCode.HasValue && (int)response.StatusCode >= 400))) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, String.Empty)); } return true; } catch (WebException e) { if (e.Response == null) { throw; } response = (HttpWebResponse)e.Response; // Check if the error is caused by redirection if (response.StatusCode == HttpStatusCode.MultipleChoices || response.StatusCode == HttpStatusCode.MovedPermanently || response.StatusCode == HttpStatusCode.Found || response.StatusCode == HttpStatusCode.SeeOther || response.StatusCode == HttpStatusCode.TemporaryRedirect) { var location = response.Headers["Location"]; Uri newUri; if (!Uri.TryCreate(client.Uri, location, out newUri)) { throw; } _baseUri = new Lazy<Uri>(() => newUri); return false; } if (expectedStatusCode != response.StatusCode) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, e.Message), e); } return true; } finally { if (response != null) { response.Close(); response = null; } } }
/// <summary> /// Ensures that success response is received. /// </summary> /// <param name="client">The client that is making the request.</param> /// <param name="expectedStatusCode">The exected status code.</param> /// <returns> /// True if success response is received; false if redirection response is received. /// In this case, _baseUri will be updated to be the new redirected Uri and the requrest /// should be retried. /// </returns> public NuGetServiceGetClientResult ensure_successful_response(HttpClient client, HttpStatusCode? expectedStatusCode = null) { this.Log().Debug(() => "Reaching out to '{0}'".format_with(client.Uri.to_string())); var result = new NuGetServiceGetClientResult { Success = false }; HttpWebResponse response = null; try { response = (HttpWebResponse)client.GetResponse(); result.Messages.Add( new ResultMessage { MessageType = ResultType.Note, Message = response != null ? response.StatusDescription : "Response was null" }); if (response != null && ((expectedStatusCode.HasValue && expectedStatusCode.Value != response.StatusCode) || // If expected status code isn't provided, just look for anything 400 (Client Errors) or higher (incl. 500-series, Server Errors) // 100-series is protocol changes, 200-series is success, 300-series is redirect. (!expectedStatusCode.HasValue && (int)response.StatusCode >= 400))) Bootstrap.handle_exception(new InvalidOperationException("Failed to process request.{0} '{1}'".format_with(Environment.NewLine, response.StatusDescription))); else result.Success = true; return result; } catch (WebException e) { if (e.Response == null) { Bootstrap.handle_exception(e); return result; } response = (HttpWebResponse)e.Response; // Check if the error is caused by redirection if (response.StatusCode == HttpStatusCode.MultipleChoices || response.StatusCode == HttpStatusCode.MovedPermanently || response.StatusCode == HttpStatusCode.Found || response.StatusCode == HttpStatusCode.SeeOther || response.StatusCode == HttpStatusCode.TemporaryRedirect) { var location = response.Headers["Location"]; Uri newUri; if (!Uri.TryCreate(client.Uri, location, out newUri)) { Bootstrap.handle_exception(e); return result; } result.RedirectUrl = newUri.ToString(); return result; } result.Messages.Add( new ResultMessage { MessageType = ResultType.Note, Message = response.StatusDescription }); if (expectedStatusCode != response.StatusCode) Bootstrap.handle_exception(new InvalidOperationException("Failed to process request.{0} '{1}':{0} {2}".format_with(Environment.NewLine, response.StatusDescription, e.Message), e)); else result.Success = true; return result; } finally { if (response != null) { response.Close(); response = null; } } }
static Stream GetResponseStream (Uri uri) { WebResponse response = null; if (uri.IsFile) { var request = WebRequest.Create (uri); response = request.GetResponse (); } else { var httpClient = new HttpClient (uri); response = httpClient.GetResponse (); } var stream = new MemoryStream (); response.GetResponseStream ().CopyTo (stream); // force the download to complete stream.Position = 0; return stream; }
private static void EnsureSuccessfulResponse(HttpClient client, HttpStatusCode expectedStatusCode = HttpStatusCode.OK) { HttpWebResponse response = null; try { response = (HttpWebResponse)client.GetResponse(); if (response != null && expectedStatusCode != response.StatusCode) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, String.Empty)); } } catch (WebException e) { if (e.Response == null) { throw; } response = (HttpWebResponse)e.Response; if (expectedStatusCode != response.StatusCode) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, e.Message), e); } } finally { if (response != null) { response.Close(); response = null; } } }
private static void EnsureSuccessfulResponse(HttpClient client, HttpStatusCode? expectedStatusCode = null) { HttpWebResponse response = null; try { response = (HttpWebResponse)client.GetResponse(); if (response != null && ((expectedStatusCode.HasValue && expectedStatusCode.Value != response.StatusCode) || // If expected status code isn't provided, just look for anything 400 (Client Errors) or higher (incl. 500-series, Server Errors) // 100-series is protocol changes, 200-series is success, 300-series is redirect. (!expectedStatusCode.HasValue && (int)response.StatusCode >= 400))) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, String.Empty)); } } catch (WebException e) { if (e.Response == null) { throw; } response = (HttpWebResponse)e.Response; if (expectedStatusCode != response.StatusCode) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, NuGetResources.PackageServerError, response.StatusDescription, e.Message), e); } } finally { if (response != null) { response.Close(); response = null; } } }
ImageLoadedEventArgs LoadImage (Uri uri, object state) { try { var httpClient = new HttpClient (uri); Stream stream = httpClient.GetResponse ().GetResponseStream (); Image image = Image.FromStream (stream); return new ImageLoadedEventArgs (image, uri, state); } catch (Exception ex) { return new ImageLoadedEventArgs (ex, uri, state); } }