> Можно ли указать кастомный заголовок в HTTP запросе (Go)

Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы

Компании: Wildberries

Стек: Go

> Пример ответа

Да, в Go можно указать кастомный заголовок в HTTP-запросе. Для этого используется структура http.Request и её поле Header. Вот пример:

GO
package main
import (
"fmt"
"net/http"
"strings"
)
func main() {
// Создаём тело запроса (если нужно)
body := strings.NewReader(`{"key": "value"}`)
// Создаём запрос
req, err := http.NewRequest("POST", "https://example.com/api", body)
if err != nil {
panic(err)
}
// Устанавливаем кастомный заголовок
req.Header.Set("X-Custom-Header", "my-value")
req.Header.Set("Authorization", "Bearer token123")
// Выполняем запрос
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Status:", resp.Status)
}

Ключевые моменты:

  • Используйте req.Header.Set(key, value) для установки одного заголовка.
  • Используйте req.Header.Add(key, value) для добавления нескольких значений к одному заголовку.
  • Заголовки чувствительны к регистру, но Go автоматически нормализует их (например, x-custom-header станет X-Custom-Header).
  • Не забудьте проверить ошибки при создании запроса и выполнении.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью