golangはweb要求状態コードを設定します。

2823 ワード

package main

import (
    "net/http"
)

func main() {
    //      
    http.HandleFunc("/", Hander)
    //  8080  
    http.ListenAndServe(":8080", nil)
}
func Hander(w http.ResponseWriter, req *http.Request) {
    //   http    
    w.WriteHeader(500)
    //      
    w.Write([]byte("xiaochuan"))
}
httpで包んでもいいです。中の定数はこちらで直接数字を書いてもいいです。分かりやすいです。
const (
    StatusContinue           = 100
    StatusSwitchingProtocols = 101

    StatusOK                   = 200
    StatusCreated              = 201
    StatusAccepted             = 202
    StatusNonAuthoritativeInfo = 203
    StatusNoContent            = 204
    StatusResetContent         = 205
    StatusPartialContent       = 206

    StatusMultipleChoices   = 300
    StatusMovedPermanently  = 301
    StatusFound             = 302
    StatusSeeOther          = 303
    StatusNotModified       = 304
    StatusUseProxy          = 305
    StatusTemporaryRedirect = 307

    StatusBadRequest                   = 400
    StatusUnauthorized                 = 401
    StatusPaymentRequired              = 402
    StatusForbidden                    = 403
    StatusNotFound                     = 404
    StatusMethodNotAllowed             = 405
    StatusNotAcceptable                = 406
    StatusProxyAuthRequired            = 407
    StatusRequestTimeout               = 408
    StatusConflict                     = 409
    StatusGone                         = 410
    StatusLengthRequired               = 411
    StatusPreconditionFailed           = 412
    StatusRequestEntityTooLarge        = 413
    StatusRequestURITooLong            = 414
    StatusUnsupportedMediaType         = 415
    StatusRequestedRangeNotSatisfiable = 416
    StatusExpectationFailed            = 417
    StatusTeapot                       = 418

    StatusInternalServerError     = 500
    StatusNotImplemented          = 501
    StatusBadGateway              = 502
    StatusServiceUnavailable      = 503
    StatusGatewayTimeout          = 504
    StatusHTTPVersionNotSupported = 505

    // New HTTP status codes from RFC 6585. Not exported yet in Go 1.1.
    // See discussion at https://codereview.appspot.com/7678043/
    statusPreconditionRequired          = 428
    statusTooManyRequests               = 429
    statusRequestHeaderFieldsTooLarge   = 431
    statusNetworkAuthenticationRequired = 511
)
このように修正します。
package main

import (
    "net/http"
)

func main() {
    //      
    http.HandleFunc("/", Hander)
    //  8080  
    http.ListenAndServe(":8080", nil)
}
func Hander(w http.ResponseWriter, req *http.Request) {
    //   http      500
    w.WriteHeader(http.StatusInternalServerError)

    //      
    w.Write([]byte("xiaochuan"))
}