Пример #1
0
 private HttpWebServiceException(HttpWebServiceExceptionStatus status, Exception ex, string url, string message)
     : base(message, ex)
 {
     _status = status;
     _url    = url;
 }
 private HttpWebServiceException(HttpWebServiceExceptionStatus status, Exception ex, string url, string message)
     : base(message, ex)
 {
     _status = status;
     _url = url;
 }
Пример #3
0
        /// <summary>
        /// Parses a web exception to get an error message and a <see cref="HttpWebServiceExceptionStatus"/> status code.
        /// </summary>
        /// <param name="ex"></param>
        /// <param name="url"></param>
        /// <param name="proxyHost"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public static string ParseWebException(WebException ex, string url, string proxyHost, out HttpWebServiceExceptionStatus status)
        {
            var messageBuilder = new StringBuilder();

            switch (ex.Status)
            {
            case WebExceptionStatus.ProtocolError:
                HttpWebResponse response = (HttpWebResponse)ex.Response;
                switch (response.StatusCode)
                {
                case HttpStatusCode.ProxyAuthenticationRequired:
                    status = HttpWebServiceExceptionStatus.ProxyError;
                    messageBuilder.AppendFormat(
                        ExceptionMessages.ProxyAuthenticationFailure,
                        proxyHost, GetHostName(url));
                    break;

                default:
                    status = HttpWebServiceExceptionStatus.ServerError;
                    messageBuilder.AppendFormat(ExceptionMessages.ServerError,
                                                GetHostName(url));
                    messageBuilder.AppendLine(response.StatusDescription);
                    break;
                }
                break;

            case WebExceptionStatus.ProxyNameResolutionFailure:
                status = HttpWebServiceExceptionStatus.ProxyError;
                messageBuilder.AppendFormat(
                    ExceptionMessages.ProxyNameResolutionFailure, proxyHost);
                break;

            case WebExceptionStatus.RequestProhibitedByProxy:
                status = HttpWebServiceExceptionStatus.ProxyError;
                messageBuilder.AppendFormat(ExceptionMessages.RequestProhibitedByProxy,
                                            GetHostName(url), proxyHost);
                break;

            case WebExceptionStatus.NameResolutionFailure:
                status = HttpWebServiceExceptionStatus.NameResolutionFailure;
                messageBuilder.AppendFormat(ExceptionMessages.NameResolutionFailure,
                                            proxyHost);
                break;

            case WebExceptionStatus.ConnectFailure:
                status = HttpWebServiceExceptionStatus.ConnectFailure;
                messageBuilder.AppendFormat(ExceptionMessages.ConnectFailure, GetHostName(url));
                break;

            case WebExceptionStatus.Timeout:
                status = HttpWebServiceExceptionStatus.Timeout;
                messageBuilder.AppendFormat(ExceptionMessages.Timeout, GetHostName(url));
                break;

            default:
                status = HttpWebServiceExceptionStatus.WebException;
                messageBuilder.AppendFormat(ExceptionMessages.UnknownWebException,
                                            GetHostName(url), ex.Status);
                break;
            }

            return(messageBuilder.ToString());
        }
        /// <summary>
        /// Parses a web exception to get an error message and a <see cref="HttpWebServiceExceptionStatus"/> status code.
        /// </summary>
        /// <param name="ex"></param>
        /// <param name="url"></param>
        /// <param name="proxyHost"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public static string ParseWebException(WebException ex, string url, string proxyHost, out HttpWebServiceExceptionStatus status)
        {
            var messageBuilder = new StringBuilder();
            switch (ex.Status)
            {
                case WebExceptionStatus.ProtocolError:
                    HttpWebResponse response = (HttpWebResponse)ex.Response;
                    switch (response.StatusCode)
                    {
                        case HttpStatusCode.ProxyAuthenticationRequired:
                            status = HttpWebServiceExceptionStatus.ProxyError;
                            messageBuilder.AppendFormat(
                                ExceptionMessages.ProxyAuthenticationFailure,
                                proxyHost, GetHostName(url));
                            break;

                        default:
                            status = HttpWebServiceExceptionStatus.ServerError;
                            messageBuilder.AppendFormat(ExceptionMessages.ServerError,
                                GetHostName(url));
                            messageBuilder.AppendLine(response.StatusDescription);
                            break;
                    }
                    break;
                case WebExceptionStatus.ProxyNameResolutionFailure:
                    status = HttpWebServiceExceptionStatus.ProxyError;
                    messageBuilder.AppendFormat(
                        ExceptionMessages.ProxyNameResolutionFailure, proxyHost);
                    break;
                case WebExceptionStatus.RequestProhibitedByProxy:
                    status = HttpWebServiceExceptionStatus.ProxyError;
                    messageBuilder.AppendFormat(ExceptionMessages.RequestProhibitedByProxy,
                        GetHostName(url), proxyHost);
                    break;
                case WebExceptionStatus.NameResolutionFailure:
                    status = HttpWebServiceExceptionStatus.NameResolutionFailure;
                    messageBuilder.AppendFormat(ExceptionMessages.NameResolutionFailure,
                        proxyHost);
                    break;
                case WebExceptionStatus.ConnectFailure:
                    status = HttpWebServiceExceptionStatus.ConnectFailure;
                    messageBuilder.AppendFormat(ExceptionMessages.ConnectFailure, GetHostName(url));
                    break;
                case WebExceptionStatus.Timeout:
                    status = HttpWebServiceExceptionStatus.Timeout;
                    messageBuilder.AppendFormat(ExceptionMessages.Timeout, GetHostName(url));
                    break;
                default:
                    status = HttpWebServiceExceptionStatus.WebException;
                    messageBuilder.AppendFormat(ExceptionMessages.UnknownWebException,
                        GetHostName(url), ex.Status);
                    break;
            }

            return messageBuilder.ToString();
        }