nicht lesen Ich bin neu in Golang und versuchen, eine grundlegende http App mit der httprouter API zu erhalten. Ich habe eine Mauer mit gelesenen Formulardaten geschlagen, trotz der Befolgung des Rates in another StackOverflow question.Kann Postform Wert in Golang mit htprouter
Hier ist mein Code (minus Belanglosigkeiten):
import (
"fmt"
"net/http"
"github.com/julienschmidt/httprouter"
)
func main() {
r := httprouter.New()
r.POST("/sub", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
r.Header.Set("content-type", "text/html")
err := r.ParseForm()
if err != nil {
fmt.Fprintf(w, "<h1>Error: %s</h1>\n", err)
}
fmt.Fprintf(w, "<h1>Submitted message!</h1>\n<p>-%s-</p>\n", r.PostFormValue("msg"))
})
http.ListenAndServe("localhost:3000", r)
}
Im Ausgang, wo ich -hello-
sehen sollte, ich --
gerade sehen. Wenn ich die HTTP-Anfrage in Firefox in der Form Daten-Panel sehe, sehe ich msg:"hello"
, also warum r.PostFormValue("msg")
eine leere Zeichenfolge zurückgibt?
Vielleicht könnten Sie die tatsächliche Anfrage zeigen? Übrigens: Dein 'r.Header.Set (" content-type "," text/html ")' ist bei der Anfrage unsinnig; es sollte wahrscheinlich auf die Antwort gehen. – Volker