http.ResponseWriter不设置标头内容类型

时间:2017-01-05 15:55:03

标签: http svg go

我是由Brian W. Kernighan,Alan Donovan写的“Go Go Programming Language”一书写的任务。这是任务№3.4 我的请求处理程序如下所示:

func handler(w http.ResponseWriter, r *http.Request) {
    poly(w)
    w.Header().Set("ContentType", "image/svg+xml")
    fmt.Println(w.Header().Get("ContentType"))
}

poly(w) - 它是在Writer中返回svg文件的函数。 此外,我checked ContentType的值,它是“image / svg + xml”。 但是当我在chrome(F12)中查看开发菜单时,我看到了: network menu in debug

当然,我看到svn文件的xml文本,而不是图片。

所以,我有疑问:这是我的错,或者是golang中的错误,或者是正常的sutiation。

1 个答案:

答案 0 :(得分:3)

您必须在编写响应正文之前设置标题。有关详细信息,请参阅ResponseWriter文档。

此外,还有一个印刷错误。标题名称是“Content-Type”,而不是“ContentType”

func handler(w http.ResponseWriter, r *http.Request) {
  w.Header().Set("Content-Type", "image/svg+xml")
  poly(w)
}