РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1047 of 1593 menu

Функция http.ReadResponse

Функция http.ReadResponse читает HTTP-ответ из переданного сетевого соединения и возвращает структуру http.Response. В первый параметр функция принимает объект net.Conn, из которого будет производиться чтение. Во второй параметр передается указатель на объект http.Request, который используется для проверки совместимости версий HTTP. Функция автоматически обрабатывает заголовки и тело ответа.

Синтаксис

http.ReadResponse(conn net.Conn, req *http.Request) (*http.Response, error)

Пример

Давайте отправим HTTP GET запрос и прочитаем ответ с помощью функции http.ReadResponse:

package main import ( "fmt" "net" "net/http" ) func main() { conn, err := net.Dial("tcp", "example.com:80") if err != nil { fmt.Println("Connection error:", err) return } defer conn.Close() req, _ := http.NewRequest("GET", "http://example.com", nil) req.Write(conn) res, err := http.ReadResponse(conn, req) if err != nil { fmt.Println("Read response error:", err) return } defer res.Body.Close() fmt.Println("Status:", res.Status) fmt.Println("Content-Type:", res.Header.Get("Content-Type")) }

Результат выполнения кода:

"Status: 200 OK" "Content-Type: text/html; charset=UTF-8"

Пример

Давайте обработаем ошибку, которая возникает при чтении ответа от сервера с неверным форматом данных:

package main import ( "fmt" "net" "net/http" ) func main() { conn, err := net.Dial("tcp", "example.com:80") if err != nil { fmt.Println("Connection error:", err) return } defer conn.Close() conn.Write([]byte("INVALID REQUEST\r\n\r\n")) req, _ := http.NewRequest("GET", "http://example.com", nil) res, err := http.ReadResponse(conn, req) if err != nil { fmt.Println("Error reading response:", err) return } defer res.Body.Close() }

Результат выполнения кода:

"Error reading response: malformed HTTP response"

Смотрите также

  • функцию http.ReadResponse,
    которая читает HTTP-ответ из соединения
  • функцию http.NewRequest,
    которая создает новый HTTP запрос
  • функцию http.Get,
    которая выполняет HTTP GET запрос
  • функцию http.Client.Do,
    которая выполняет HTTP запрос через клиент
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить