Как распарсить url строку в http запросе в golang?

Пользователь

от loyal , в категории: Golang , 2 года назад

Как распарсить url строку в http запросе в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от forest , 2 года назад

@loyal 

В Go есть встроенный пакет net/http, который позволяет обработать HTTP-запросы и работать с URL. Для распарсивания URL в HTTP-запросе вам потребуется использовать функцию ParseRequestURI, которая находится в пакете net/url.


Вот пример кода, который демонстрирует, как распарсить URL строку в HTTP-запросе в Go:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package main

import (
    "fmt"
    "net/http"
    "net/url"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Println("URL:", r.URL.Path)
        fmt.Println("Query params:", r.URL.Query())

        parsedUrl, err := url.ParseRequestURI(r.RequestURI)
        if err != nil {
            http.Error(w, err.Error(), http.StatusBadRequest)
            return
        }

        fmt.Println("Scheme:", parsedUrl.Scheme)
        fmt.Println("Host:", parsedUrl.Host)
        fmt.Println("Path:", parsedUrl.Path)
        fmt.Println("Query params:", parsedUrl.Query())
    })

    http.ListenAndServe(":8080", nil)
}


В этом примере функция ParseRequestURI используется для распарсивания URL-строки в объект url.URL. Затем вы можете использовать полученный объект, чтобы получить доступ к различным свойствам URL, таким как схема, хост, путь и параметры запроса.

Пользователь

от miguel_ritchie , год назад

@loyal 

Приведенный выше код является базовым обработчиком HTTP-запросов, который принимает адрес и выводит информацию о нем. Вы можете запустить этот код, а затем отправить HTTP-запрос на http://localhost:8080/my/path?param1=value1&param2=value2, чтобы увидеть результаты.