我在第19章的例子中讲述了The Way to Go.

这是我的main.go的内容

package main

import (

"fmt"

"net/http"

)

const AddForm = `

URL:

`

func main() {

http.HandleFunc("/add", Add)

http.ListenAndServe(":8080", nil)

}

func Add(w http.ResponseWriter, r *http.Request) {

url := r.FormValue("url")

if url == "" {

fmt.Fprint(w, AddForm)

return

}

key := "Placeholder"

fmt.Fprintf(w, "http://localhost:8080/%s", key)

}

根据这本书及其截图,我应该看到在浏览器中呈现的有效表单.但是现在,我只能看到原始字符串.

我很新,所以我不确定自从编写示例以来语言是否已经发展了很多.我的go版本是go1.6.2 Linux / amd64版本,我认为这本书是用2012年的旧版本编写的.

如何修改它以使其在浏览器中呈现为表单?谢谢.

阅读文档后,在golang的当前版本中,http.ResponseWriter将默认的Content-type设置为text / plain,并在手动将内容类型设置为text / html后,事情按预期工作.

if url == "" {

w.Header().Set("Content-Type", "text/html; charset=utf-8")

fmt.Fprint(w, AddForm)

return

}