2016-09-10 18 views
5

これはバグか、http応答パッケージがどのように動作するはずです。http応答ヘッダーが削除されています

この例ではContent-Typeレスポンスヘッダが、私はヘッダが、それは仕事をして設定されているかの順序反転どのようにこれまでであれば

// Return the response 
w.WriteHeader(http.StatusCreated) 
w.Header().Set("Content-Type", "application/json") 
w.Write(js) 

設定されません。

// Return the response 
w.Header().Set("Content-Type", "application/json") 
w.WriteHeader(http.StatusCreated) 
w.Write(js) 

実際今、この意志をヘッダーをapplication/jsonに設定します。この動作は意図されていますか?

答えて

10

ヘッダーはレスポンスに1回だけ書き込むことができるので、ヘッダーを書き込む前にすべてのヘッダーを設定する必要があります。ヘッダーが書き込まれると、それらはクライアントに送信されます。

すべてのヘッダーを設定したら、w.WriteHeader(http.StatusCreated)に電話をかけてください。

Read in the GOLANG spec how WriteHeader works

体が書き込まれた後、このルールは、それが再送または変更することはできません(文字通り、それをクライアントに送信される応答に足す)体についても同様です。

関連する問題