EffectiveGo-7-A Web Server Posted on 2017-01-06 | Parts of Effective Go 一个Web服务器123456789101112131415161718192021222324252627282930313233343536373839404142434445package mainimport ( "flag" "html/template" "log" "net/http")var addr = flag.String("addr", ":1718", "http service address") // Q=17, R=18var templ = template.Must(template.New("qr").Parse(templateStr))func main() { flag.Parse() http.Handle("/", http.HandlerFunc(QR)) err := http.ListenAndServe(*addr, nil) if err != nil { log.Fatal("ListenAndServe:", err) }}func QR(w http.ResponseWriter, req *http.Request) { templ.Execute(w, req.FormValue("s"))}const templateStr = `<html> <head> <title>QR Link Generator</title> </head> <body> {{if .}} <img src="http://chart.apis.google.com/chart?chs=300x300&cht=qr&choe=UTF-8&chl={{.}}"/> <br> {{.}} <br> <br> {{end}} <form action="/" name=f method="GET"> <input maxLength=1024 size=70 name=s value="" title="Text to QR Encode"> <input type=submit value="Show QR" name=qr> </form> </body></html>` 调用 http://chart.apis.google.com 来生成二维码QR码