@gilberto.aufderhar
В Golang вы можете использовать пакет net/http
для распарсивания URL строки в HTTP запросе. Вот пример кода:
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 28 |
package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { // Получение URL из запроса url := r.URL // Распарсивание URL строки scheme := url.Scheme host := url.Host path := url.Path query := url.RawQuery // Вывод результатов fmt.Println("Scheme:", scheme) fmt.Println("Host:", host) fmt.Println("Path:", path) fmt.Println("Query:", query) } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) } |
В этом примере, когда вы отправляете HTTP запрос на http://localhost:8080/?param1=value1¶m2=value2
, он будет разобран следующим образом:
1 2 3 4 |
Scheme: http Host: localhost:8080 Path: / Query: param1=value1¶m2=value2 |
Вы также можете обращаться к отдельным параметрам из строки запроса, используя url.Query()
, например:
1 2 3 |
queryValues := url.Query() param1 := queryValues.Get("param1") param2 := queryValues.Get("param2") |
Это позволит вам получить значения param1
и param2
из URL строки.
@gilberto.aufderhar
Для того чтобы распарсить URL строку в HTTP запросе в Golang, вы можете использовать пакет net/url. Вот пример кода:
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 28 29 |
package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { // Получение URL из запроса url := r.URL // Распарсивание URL строки parsedUrl, err := url.ParseRequestURI(r.RequestURI) if err != nil { fmt.Println("Ошибка при распарсивании URL:", err) return } // Вывод результатов fmt.Println("Scheme:", parsedUrl.Scheme) fmt.Println("Host:", parsedUrl.Host) fmt.Println("Path:", parsedUrl.Path) fmt.Println("Query:", parsedUrl.RawQuery) } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) } |
В этом примере, когда вы отправляете HTTP запрос на http://localhost:8080/?param1=value1¶m2=value2
, URL строка будет распарсена следующим образом:
1 2 3 4 |
Scheme: http Host: localhost:8080 Path: / Query: param1=value1¶m2=value2 |
Вы также можете обратиться к отдельным параметрам из строки запроса, используя функцию url.ParseQuery()
, например:
1 2 3 4 5 6 7 8 9 10 11 |
queryValues, err := url.ParseQuery(parsedUrl.RawQuery) if err != nil { fmt.Println("Ошибка при распарсивании параметров запроса:", err) return } param1 := queryValues.Get("param1") param2 := queryValues.Get("param2") fmt.Println("Param1:", param1) fmt.Println("Param2:", param2) |
В этом примере, значения param1
и param2
будут получены из строки запроса.