一尘不染

如何在http.Request中获取URL

go

我建立了一个HTTP服务器。我正在使用下面的代码来获取请求URL,但未获取完整URL。

func Handler(w http.ResponseWriter, r *http.Request) {  
    fmt.Printf("Req: %s %s", r.URL.Host, r.URL.Path)
}

我只得到"Req: / ""Req: /favicon.ico"

我想获得完整的客户端请求的URL作为"1.2.3.4/""1.2.3.4/favicon.ico"

谢谢。


阅读 584

收藏
2020-07-02

共1个答案

一尘不染

从net / http包的文档中:

type Request struct {
   ...
   // The host on which the URL is sought.
   // Per RFC 2616, this is either the value of the Host: header
   // or the host name given in the URL itself.
   // It may be of the form "host:port".
   Host string
   ...
}

您的代码的修改后的版本:

func Handler(w http.ResponseWriter, r *http.Request) {
    fmt.Printf("Req: %s %s\n", r.Host, r.URL.Path) 
}

输出示例:

Req: localhost:8888 /
2020-07-02