2017-01-05 145 views
-2

我从Brian W. Kernighan,Alan Donovan编写的Go The Programming Language一书中写了一个任务。它的任务№3.4 我的要求看起来像这样的处理程序:http.ResponseWriter不设置标题内容类型

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

聚(W) - 它是在作家返回SVG文件的功能。 另外,我嘲笑了ContentType的价值,它是“image/svg + xml”。 但是,当我看到在发展铬(F12)菜单中我看到这一点: network menu in debug

而且着,当然,我看到SVN文件的XML文本,没有图像。

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

+1

根据给出的答案,这是一个印刷错误问题。 – silentsod

回答

3

您必须在写入响应主体之前设置标题。有关更多详细信息,请参阅ResponseWriter文档。

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

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