Wie Holen Sie die URL in http.Anfrage
Baute ich einen HTTP-server. Ich bin mit dem code unten, um die Anfrage-URL, aber es wird nicht die vollständige URL.
func Handler(w http.ResponseWriter, r *http.Request) {
fmt.Printf("Req: %s %s", r.URL.Host, r.URL.Path)
}
Bekomme ich nur "Req: /"
und "Req: /favicon.ico"
.
Möchte ich, um full-client-Anfrage-URL als "1.2.3.4/"
oder "1.2.3.4/favicon.ico"
.
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der Dokumentation der net/http-Paket:
Modifizierte version des Codes:
Beispiel-Ausgabe:
Benutze ich
req.URL.RequestURI()
um die vollständige url.Vom
net/http/requests.go
:Wenn Sie erkennen, dass Sie es mit einer relativen URL (
r.URL.IsAbs() == false
), Sie sill haben Zugang zur.Host
(siehehttp.Anfrage
), dieHost
selbst.Verkettung der beiden würde geben Sie die vollständige URL.
In der Regel sehen Sie den reverse - (extrahieren, Host aus eine URL), wie in
gorilla/reverse/Matcher.gehen