Метод url.URL.RequestURI
Метод url.URL.RequestURI преобразует URL-структуру в строку запроса, которая подходит для использования в HTTP-запросах. Он возвращает полный путь ресурса, включая путь и строку запроса (если она присутствует), но без схемы и хоста. Это удобно при формировании HTTP-запросов, когда нужно отправить только относительный путь с параметрами.
Синтаксис
func (u *URL) RequestURI() string
Пример
Давайте получим URI для URL с путем и параметрами запроса:
package main
import (
"fmt"
"net/url"
)
func main() {
u := &url.URL{
Path: "/api/v1/users",
RawQuery: "limit=10&offset=5",
}
res := u.RequestURI()
fmt.Println(res)
}
Результат выполнения кода:
"/api/v1/users?limit=10&offset=5"
Пример
Давайте получим URI для URL без параметров запроса:
package main
import (
"fmt"
"net/url"
)
func main() {
u := &url.URL{
Path: "/dashboard",
}
res := u.RequestURI()
fmt.Println(res)
}
Результат выполнения кода:
"/dashboard"
Пример
Давайте получим URI для URL с экранированными символами в пути:
package main
import (
"fmt"
"net/url"
)
func main() {
u := &url.URL{
Path: "/search/tag go",
RawQuery: "q=example",
}
res := u.RequestURI()
fmt.Println(res)
}
Результат выполнения кода:
"/search/tag%20go?q=example"
Смотрите также
-
метод
url.URL.String,
который возвращает полную строку URL -
метод
url.URL.Query,
который разбирает строку запроса в структуру Values -
функцию
url.ParseRequestURI,
которая разбирает строку URI в структуру URL -
функцию
url.QueryEscape,
которая экранирует строку для использования в параметрах запроса