Метод url.URL.String

Метод url.URL.String преобразует структуру типа url.URL в строковое представление URL. Он возвращает строку, содержащую полный URL, собранный из полей структуры: схему, хост, путь, параметры запроса и фрагмент. Метод автоматически экранирует специальные символы в пути и параметрах запроса, обеспечивая корректное форматирование URL.

Синтаксис

gofunc (u *URL) String() string

Пример

Давайте создадим структуру URL и преобразуем ее в строку:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  u := &url.URL{
    Scheme:   "https",
    Host:   "example.com",
    Path:   "/path/to/resource",
    RawQuery: "key=value&foo=bar",
    Fragment: "section",
  }
  res := u.String()
  fmt.Println(res)
}

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

go"https://example.com/path/to/resource?key=value&foo=bar#section"

Пример

Давайте преобразуем URL с использованием функции url.Parse:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  parsedURL, err := url.Parse("https://example.com:8080/api/v1?limit=10&offset=0")
  if err != nil {
    fmt.Println(err)
    return
  }
  res := parsedURL.String()
  fmt.Println(res)
}

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

go"https://example.com:8080/api/v1?limit=10&offset=0"

Пример

Давайте изменим путь и параметры запроса URL:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  u := &url.URL{
    Scheme: "http",
    Host:   "localhost:3000",
    Path:   "/users",
  }
  q := u.Query()
  q.Set("id", "123")
  q.Add("sort", "asc")
  u.RawQuery = q.Encode()
  res := u.String()
  fmt.Println(res)
}

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

go"http://localhost:3000/users?id=123&sort=asc"

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

  • метод url.URL.Query,
    который возвращает параметры запроса URL
  • метод url.URL.RequestURI,
    который возвращает путь и параметры запроса
  • функцию url.Parse,
    которая преобразует строку в структуру URL
  • функцию url.Values.Encode,
    которая кодирует параметры запроса