Go Webserver leitet POST-Anfragen automatisch um
Ich habe versucht, ein @ zu lös seltsames Problem seit geraumer zeit. Nachdem ich mich durch viele Winkelcodes geschlichen hatte, bemerkte ich etwas Seltsames, als ich über Charles Anfragen an meinen Server protokollierte.
Wenn ich auf eine URL poste/myurl
die Anfrage trifft eigentlich nie meinen Server. Stattdessen erhält es eine 301-Antwort und DANN erreicht eine GET-Anfrage meinen Server.
Das ist unglaublich rätselhaft. Hat jemand anderes auf dieses Problem gestoßen? Ich habe einen Screenshot meines Charles-Protokolls hochgeladen, falls Sie interessiert sind.
Nur als Referenz, so sieht mein Server aus:
type FormStruct struct {
Test string
}
func PHandler(w http.ResponseWriter, r *http.Request) {
var t FormStruct
req, _ := httputil.DumpRequest(r, true)
log.Println(string(req))
log.Println(r.Method) // GET
log.Println(r.Body)
decoder := json.NewDecoder(r.Body)
err := decoder.Decode(&t)
log.Println("Decoding complete")
if err != nil {
log.Println("Error")
panic(err.Error()+"\n\n")
}
log.Println(t.Test)
w.Write([]byte("Upload complete, no errors"))
}
func main() {
http.HandleFunc("/myurl/", PHandler)
fmt.Println("Go Server listening on port 8001")
http.ListenAndServe(":8001", nil)
}