2016-09-10 26 views
5

Tôi không chắc đây có phải là lỗi hay cách gói phản hồi http được yêu cầu hoạt động.tiêu đề phản hồi http golang http bị xóa

Trong ví dụ này, tiêu đề Content-Type phản ứng sẽ không được đặt

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

Làm thế nào bao giờ hết nếu tôi lật sắp xếp theo độ các tiêu đề được thiết lập nó làm việc:

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

Bây giờ điều này sẽ thực tế đặt tiêu đề thành application/json. Hành vi này có được dự định không?

Trả lời

10

Tiêu đề chỉ có thể được viết một lần cho câu trả lời để bạn phải đặt tất cả các tiêu đề trước khi viết chúng. Khi tiêu đề được viết, chúng sẽ được gửi cho khách hàng.

Bạn chỉ nên gọi w.WriteHeader(http.StatusCreated) khi bạn đã đặt tất cả các tiêu đề của mình.

Read in the GOLANG spec how WriteHeader works

Quy tắc này là như nhau cho cơ thể khi cơ thể được viết (writting để đáp ứng được nghĩa đen gửi nó cho các khách hàng) nó không thể được bực bội hoặc thay đổi.

Các vấn đề liên quan