我在第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
}