113 lines
3.5 KiB
Go
113 lines
3.5 KiB
Go
// Package consts ...
|
|
//
|
|
// Description : consts ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 2025-04-19 12:38
|
|
package consts
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
)
|
|
|
|
type HttpCode struct {
|
|
Value any `json:"value"`
|
|
Code int `json:"code"`
|
|
Desc string `json:"desc"`
|
|
}
|
|
|
|
func newHttpCodeData(httpCode int) HttpCode {
|
|
desc := http.StatusText(httpCode)
|
|
if len(desc) == 0 {
|
|
if httpCode == 499 {
|
|
desc = "client request timeout"
|
|
} else {
|
|
desc = fmt.Sprintf("%v: unknown error", httpCode)
|
|
}
|
|
}
|
|
return HttpCode{
|
|
Value: httpCode,
|
|
Code: httpCode,
|
|
Desc: desc,
|
|
}
|
|
}
|
|
|
|
var (
|
|
HttpCodeList = []HttpCode{
|
|
// 1xx
|
|
newHttpCodeData(http.StatusContinue),
|
|
newHttpCodeData(http.StatusSwitchingProtocols),
|
|
newHttpCodeData(http.StatusProcessing),
|
|
newHttpCodeData(http.StatusEarlyHints),
|
|
|
|
// 2xx
|
|
newHttpCodeData(http.StatusOK),
|
|
newHttpCodeData(http.StatusCreated),
|
|
newHttpCodeData(http.StatusAccepted),
|
|
newHttpCodeData(http.StatusNonAuthoritativeInfo),
|
|
newHttpCodeData(http.StatusNoContent),
|
|
newHttpCodeData(http.StatusResetContent),
|
|
newHttpCodeData(http.StatusPartialContent),
|
|
newHttpCodeData(http.StatusMultiStatus),
|
|
newHttpCodeData(http.StatusAlreadyReported),
|
|
newHttpCodeData(http.StatusIMUsed),
|
|
|
|
// 3xx
|
|
newHttpCodeData(http.StatusMultipleChoices),
|
|
newHttpCodeData(http.StatusMovedPermanently),
|
|
newHttpCodeData(http.StatusFound),
|
|
newHttpCodeData(http.StatusSeeOther),
|
|
newHttpCodeData(http.StatusNotModified),
|
|
newHttpCodeData(http.StatusUseProxy),
|
|
newHttpCodeData(http.StatusTemporaryRedirect),
|
|
newHttpCodeData(http.StatusPermanentRedirect),
|
|
|
|
// 4xx
|
|
newHttpCodeData(http.StatusBadRequest),
|
|
newHttpCodeData(http.StatusUnauthorized),
|
|
newHttpCodeData(http.StatusPaymentRequired),
|
|
newHttpCodeData(http.StatusForbidden),
|
|
newHttpCodeData(http.StatusNotFound),
|
|
newHttpCodeData(http.StatusMethodNotAllowed),
|
|
newHttpCodeData(http.StatusNotAcceptable),
|
|
newHttpCodeData(http.StatusProxyAuthRequired),
|
|
newHttpCodeData(http.StatusRequestTimeout),
|
|
newHttpCodeData(http.StatusConflict),
|
|
newHttpCodeData(http.StatusGone),
|
|
newHttpCodeData(http.StatusLengthRequired),
|
|
newHttpCodeData(http.StatusPreconditionFailed),
|
|
newHttpCodeData(http.StatusRequestEntityTooLarge),
|
|
newHttpCodeData(http.StatusRequestURITooLong),
|
|
newHttpCodeData(http.StatusUnsupportedMediaType),
|
|
newHttpCodeData(http.StatusRequestedRangeNotSatisfiable),
|
|
newHttpCodeData(http.StatusExpectationFailed),
|
|
newHttpCodeData(http.StatusTeapot),
|
|
newHttpCodeData(http.StatusMisdirectedRequest),
|
|
newHttpCodeData(http.StatusUnprocessableEntity),
|
|
newHttpCodeData(http.StatusLocked),
|
|
newHttpCodeData(http.StatusFailedDependency),
|
|
newHttpCodeData(http.StatusTooEarly),
|
|
newHttpCodeData(http.StatusUpgradeRequired),
|
|
newHttpCodeData(http.StatusPreconditionRequired),
|
|
newHttpCodeData(http.StatusTooManyRequests),
|
|
newHttpCodeData(http.StatusRequestHeaderFieldsTooLarge),
|
|
newHttpCodeData(http.StatusUnavailableForLegalReasons),
|
|
newHttpCodeData(499),
|
|
|
|
// 5xx
|
|
newHttpCodeData(http.StatusInternalServerError),
|
|
newHttpCodeData(http.StatusNotImplemented),
|
|
newHttpCodeData(http.StatusBadGateway),
|
|
newHttpCodeData(http.StatusServiceUnavailable),
|
|
newHttpCodeData(http.StatusGatewayTimeout),
|
|
newHttpCodeData(http.StatusHTTPVersionNotSupported),
|
|
newHttpCodeData(http.StatusVariantAlsoNegotiates),
|
|
newHttpCodeData(http.StatusInsufficientStorage),
|
|
newHttpCodeData(http.StatusLoopDetected),
|
|
newHttpCodeData(http.StatusNotExtended),
|
|
newHttpCodeData(http.StatusNetworkAuthenticationRequired),
|
|
}
|
|
)
|