Константа http.MethodPut
Константа http.MethodPut представляет собой строковое значение "PUT" и используется для обозначения HTTP-метода PUT в пакете net/http. Данная константа применяется при создании HTTP-запросов, настройке маршрутов и обработке запросов для метода PUT. Использование константы вместо строкового литерала помогает избежать опечаток и упрощает поддержку кода.
Синтаксис
http.MethodPut
Константа не принимает параметров и возвращает строку "PUT".
Пример
Создадим HTTP-запрос с методом PUT с использованием константы http.MethodPut:
package main
import (
"fmt"
"net/http"
"strings"
)
func main() {
url := "https://api.example.com/resource/1"
body := strings.NewReader(`{"name": "updated"}`)
req, err := http.NewRequest(http.MethodPut, url, body)
if err != nil {
fmt.Println("Error creating request:", err)
return
}
fmt.Println(req.Method)
fmt.Println(req.URL.String())
}
Результат выполнения кода:
"PUT"
"https://api.example.com/resource/1"
В этом примере мы создаем новый HTTP-запрос с методом PUT, используя константу http.MethodPut. Как видно из результата, метод запроса успешно установлен в "PUT".
Пример
Используем константу http.MethodPut для проверки HTTP-метода в обработчике:
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
if r.Method == http.MethodPut {
fmt.Fprintf(w, "Request processed with PUT method")
} else {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
}
}
func main() {
http.HandleFunc("/resource", handler)
fmt.Println("Server started on :8080")
// http.ListenAndServe(":8080", nil)
}
В этом примере мы создаем обработчик HTTP-запросов, который проверяет, является ли метод запроса PUT. Если да, то возвращается сообщение об успехе. Если метод не PUT, возвращается ошибка "Method not allowed".
Пример
Отправим клиентский запрос с методом PUT с использованием константы:
package main
import (
"fmt"
"net/http"
"strings"
)
func main() {
url := "https://httpbin.org/put"
body := strings.NewReader(`{"key": "value"}`)
req, err := http.NewRequest(http.MethodPut, url, body)
if err != nil {
fmt.Println("Error creating request:", err)
return
}
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error sending request:", err)
return
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
Результат выполнения кода (может отличаться в зависимости от сервера):
"Response Status: 200 OK"
Здесь мы создаем HTTP-клиент, который отправляет PUT-запрос на тестовый сервер. Использование константы http.MethodPut гарантирует правильное указание метода запроса.
Смотрите также
-
константу
http.MethodGet,
которая представляет метод GET -
константу
http.MethodPost,
которая представляет метод POST -
константу
http.MethodDelete,
которая представляет метод DELETE -
константу
http.MethodPatch,
которая представляет метод PATCH