123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package context
- import "net/http"
- // ClientErrorCodes holds the 4xx Client errors.
- var (
- ClientErrorCodes = []int{
- http.StatusBadRequest,
- http.StatusUnauthorized,
- http.StatusPaymentRequired,
- http.StatusForbidden,
- http.StatusNotFound,
- http.StatusMethodNotAllowed,
- http.StatusNotAcceptable,
- http.StatusProxyAuthRequired,
- http.StatusRequestTimeout,
- http.StatusConflict,
- http.StatusGone,
- http.StatusLengthRequired,
- http.StatusPreconditionFailed,
- http.StatusRequestEntityTooLarge,
- http.StatusRequestURITooLong,
- http.StatusUnsupportedMediaType,
- http.StatusRequestedRangeNotSatisfiable,
- http.StatusExpectationFailed,
- http.StatusTeapot,
- http.StatusMisdirectedRequest,
- http.StatusUnprocessableEntity,
- http.StatusLocked,
- http.StatusFailedDependency,
- http.StatusTooEarly,
- http.StatusUpgradeRequired,
- http.StatusPreconditionRequired,
- http.StatusTooManyRequests,
- http.StatusRequestHeaderFieldsTooLarge,
- http.StatusUnavailableForLegalReasons,
- // Unofficial.
- StatusPageExpired,
- StatusBlockedByWindowsParentalControls,
- StatusInvalidToken,
- StatusTokenRequired,
- }
- // ServerErrorCodes holds the 5xx Server errors.
- ServerErrorCodes = []int{
- http.StatusInternalServerError,
- http.StatusNotImplemented,
- http.StatusBadGateway,
- http.StatusServiceUnavailable,
- http.StatusGatewayTimeout,
- http.StatusHTTPVersionNotSupported,
- http.StatusVariantAlsoNegotiates,
- http.StatusInsufficientStorage,
- http.StatusLoopDetected,
- http.StatusNotExtended,
- http.StatusNetworkAuthenticationRequired,
- // Unofficial.
- StatusBandwidthLimitExceeded,
- StatusInvalidSSLCertificate,
- StatusSiteOverloaded,
- StatusSiteFrozen,
- StatusNetworkReadTimeout,
- }
- // ClientAndServerErrorCodes is the static list of all client and server error codes.
- ClientAndServerErrorCodes = append(ClientErrorCodes, ServerErrorCodes...)
- )
- // Unofficial status error codes.
- const (
- // 4xx
- StatusPageExpired = 419
- StatusBlockedByWindowsParentalControls = 450
- StatusInvalidToken = 498
- StatusTokenRequired = 499
- // 5xx
- StatusBandwidthLimitExceeded = 509
- StatusInvalidSSLCertificate = 526
- StatusSiteOverloaded = 529
- StatusSiteFrozen = 530
- StatusNetworkReadTimeout = 598
- )
- var unofficialStatusText = map[int]string{
- StatusPageExpired: "Page Expired",
- StatusBlockedByWindowsParentalControls: "Blocked by Windows Parental Controls",
- StatusInvalidToken: "Invalid Token",
- StatusTokenRequired: "Token Required",
- StatusBandwidthLimitExceeded: "Bandwidth Limit Exceeded",
- StatusInvalidSSLCertificate: "Invalid SSL Certificate",
- StatusSiteOverloaded: "Site is overloaded",
- StatusSiteFrozen: "Site is frozen",
- StatusNetworkReadTimeout: "Network read timeout error",
- }
- // StatusText returns a text for the HTTP status code. It returns the empty
- // string if the code is unknown.
- func StatusText(code int) string {
- text := http.StatusText(code)
- if text == "" {
- text = unofficialStatusText[code]
- }
- return text
- }
- // StatusCodeNotSuccessful defines if a specific "statusCode" is not
- // a valid status code for a successful response.
- // By default if the status code is lower than 400 then it is not a failure one,
- // otherwise it is considered as an error code.
- //
- // Read more at `iris/Configuration#DisableAutoFireStatusCode` and
- // `iris/core/router/Party#OnAnyErrorCode` for relative information.
- //
- // Modify this variable when your Iris server or/and client
- // not follows the RFC: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
- var StatusCodeNotSuccessful = func(statusCode int) bool { return statusCode >= 400 }
|