РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1117 of 1593 menu

Метод url.URL.Query

Метод url.URL.Query преобразует строку запроса (часть URL после знака ?) в тип url.Values. Это структура, которая представляет собой карту, где ключом является имя параметра, а значением — срез строк. Метод полезен для разбора URL-параметров в веб-приложениях, при работе с API или при разборе HTTP-запросов. Он не требует ручного разбора строки — вся логика уже встроена в пакет net/url.

Синтаксис

func (u *URL) Query() Values

Метод не принимает никаких параметров и возвращает значение типа url.Values.

Пример

Разберем простой URL с параметрами и получим их значения с помощью Query:

package main import ( "fmt" "net/url" ) func main() { rawURL := "http://example.com/page?name=john&age=30" parsedURL, err := url.Parse(rawURL) if err != nil { fmt.Println("Error parsing URL:", err) return } query := parsedURL.Query() fmt.Println(query) }

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

map[age:[30] name:[john]]

Пример

Получим значения отдельных параметров с помощью метода Get структуры url.Values:

package main import ( "fmt" "net/url" ) func main() { rawURL := "http://example.com/search?q=golang&lang=en" parsedURL, _ := url.Parse(rawURL) query := parsedURL.Query() search := query.Get("q") lang := query.Get("lang") missing := query.Get("nonexistent") fmt.Printf("Search: %s, Language: %s, Missing: %s\n", search, lang, missing) }

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

"Search: golang, Language: en, Missing: "

Пример

Обработаем URL с одинаковыми именами параметров — метод вернет срез всех значений:

package main import ( "fmt" "net/url" ) func main() { rawURL := "http://example.com/filter?color=red&color=blue&color=green" parsedURL, _ := url.Parse(rawURL) query := parsedURL.Query() colors := query["color"] fmt.Println(colors) }

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

[red blue green]

Пример

Если строка запроса отсутствует, метод вернет пустую карту, а не nil:

package main import ( "fmt" "net/url" ) func main() { rawURL := "http://example.com/noquery" parsedURL, _ := url.Parse(rawURL) query := parsedURL.Query() fmt.Println(len(query)) }

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

"0"

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

  • функцию url.Parse,
    которая преобразует строку в структуру URL
  • функцию url.QueryEscape,
    которая кодирует строку для безопасного включения в URL
  • функцию url.QueryUnescape,
    которая декодирует строку из URL-формата
  • метод url.Values.Encode,
    который сериализует параметры в строку запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить