Функция http.NewRequest
Функция http.NewRequest создает новый HTTP-запрос для отправки на сервер.
В первый параметр мы передаем HTTP-метод (например, http.MethodGet или http.MethodPost),
во второй параметр мы передаем URL-адрес в виде строки,
в третий параметр мы передаем тело запроса в виде io.Reader (или nil, если тело не требуется).
Функция возвращает указатель на http.Request и ошибку, если URL недействителен.
Синтаксис
func NewRequest(method, url string, body io.Reader) (*http.Request, error)
Пример
Давайте создадим простой GET-запрос к веб-странице:
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://example.com", nil)
if err != nil {
fmt.Println("Error creating request:", err)
return
}
fmt.Println(req.Method, req.URL)
}
Результат выполнения кода:
"GET https://example.com"
Пример
Давайте создадим POST-запрос с JSON-телом:
package main
import (
"bytes"
"fmt"
"net/http"
)
func main() {
jsonData := []byte(`{"name": "John", "age": 30}`)
body := bytes.NewReader(jsonData)
req, err := http.NewRequest(http.MethodPost, "https://httpbin.org/post", body)
if err != nil {
fmt.Println("Error creating request:", err)
return
}
req.Header.Set("Content-Type", "application/json")
fmt.Println(req.Method, req.URL, req.Header.Get("Content-Type"))
}
Результат выполнения кода:
"POST https://httpbin.org/post application/json"
Пример
Давайте создадим запрос с установкой пользовательских заголовков:
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://api.example.com/data", nil)
if err != nil {
fmt.Println("Error creating request:", err)
return
}
req.Header.Set("Authorization", "Bearer token123")
req.Header.Set("User-Agent", "MyApp/1.0")
fmt.Println(req.Header.Get("Authorization"), req.Header.Get("User-Agent"))
}
Результат выполнения кода:
"Bearer token123 MyApp/1.0"
Смотрите также
-
функцию
http.NewRequestWithContext,
которая создает запрос с контекстом для управления отменой -
метод
Client.Do,
который выполняет созданный запрос -
метод
Request.ParseForm,
который разбирает параметры формы из запроса -
метод
Request.FormValue,
который возвращает значение параметра формы по ключу