我在第19章的例子中讲述了The Way to Go.
这是我的内容 main.go
package main
import (
"fmt"
"net/http"
)
const AddForm = `
<form method="POST" action="/add">
URL: <input type="text" name="url">
<input type="submit" value="Add">
</form>
`
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)
}
Run Code Online (Sandbox Code Playgroud)
根据这本书及其截图,我应该看到在浏览器中呈现的有效表单.但是现在,我只能看到原始字符串.
我很新,所以我不确定自从编写示例以来语言是否已经发展了很多.我的版本是go version go1.6.2 linux/amd64
,我认为这本书是在2012年用旧版本的go编写的.
如何修改它以使其在浏览器中呈现为表单?谢谢.
coo*_*aac 10
阅读完文档后,在当前版本的golang中,http.ResponseWriter的默认内容类型为text/plain
,并且在手动设置内容类型后text/html
,事情按预期工作.
if url == "" {
w.Header().Set("Content-Type", "text/html; charset=utf-8")
fmt.Fprint(w, AddForm)
return
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7202 次 |
最近记录: |