@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, таким как схема, хост, путь и параметры запроса.
@loyal
Приведенный выше код является базовым обработчиком HTTP-запросов, который принимает адрес и выводит информацию о нем. Вы можете запустить этот код, а затем отправить HTTP-запрос на http://localhost:8080/my/path?param1=value1¶m2=value2, чтобы увидеть результаты.