Метод url.URL.RequestURI

Метод url.URL.RequestURI преобразует URL-структуру в строку запроса, которая подходит для использования в HTTP-запросах. Он возвращает полный путь ресурса, включая путь и строку запроса (если она присутствует), но без схемы и хоста. Это удобно при формировании HTTP-запросов, когда нужно отправить только относительный путь с параметрами.

Синтаксис

gofunc (u *URL) RequestURI() string

Пример

Давайте получим URI для URL с путем и параметрами запроса:

gopackage 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)
}

Результат выполнения кода:

go"/api/v1/users?limit=10&offset=5"

Пример

Давайте получим URI для URL без параметров запроса:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  u := &url.URL{
    Path: "/dashboard",
  }

  res := u.RequestURI()
  fmt.Println(res)
}

Результат выполнения кода:

go"/dashboard"

Пример

Давайте получим URI для URL с экранированными символами в пути:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  u := &url.URL{
    Path:   "/search/tag go",
    RawQuery: "q=example",
  }

  res := u.RequestURI()
  fmt.Println(res)
}

Результат выполнения кода:

go"/search/tag%20go?q=example"

Смотрите также

  • метод url.URL.String,
    который возвращает полную строку URL
  • метод url.URL.Query,
    который разбирает строку запроса в структуру Values
  • функцию url.ParseRequestURI,
    которая разбирает строку URI в структуру URL
  • функцию url.QueryEscape,
    которая экранирует строку для использования в параметрах запроса