HTTPヘッダを返したり、ステータスを変えたり

ツイート このエントリーをはてなブックマークに追加
1つ上へ / ブログトップへ

結果を返す時、ResponseWriter型なので本文しか返せない?と思ってしまいますが、ヘッダー、ちゃんと返せます。

package main

import (
        "fmt"
        "net/http"
)

func rootHandler(w http.ResponseWriter, req *http.Request) {
        // 独自ヘッダを先に付けて
        w.Header().Set("x-moke-token", "token!!!!")
        // この後ステータスコード
        w.WriteHeader(201)
        // そして本文
        fmt.Fprintf(w, "Moke server")
}

func main() {
        http.HandleFunc("/", rootHandler)
        http.ListenAndServe(":8080", nil)
}

curlで実行してみましょう。

$ curl -v -X POST 'http://localhost:8080'

< HTTP/1.1 201 Created
< X-Moke-Token: token!!!!
< Date: Tue, 01 Jul 2014 07:50:54 GMT
< Content-Length: 11
< Content-Type: text/plain; charset=utf-8
<
Moke server

ちゃんと返ってきました。「ヘッダが付与されない!」とか、「ステータスコードが変わらない!」という方は順序をもう一度確認してみましょう。

1つ上へ / ブログトップへ