cpp

Отправка запроса методом HEAD

Отправить запрос методом HEAD и получить результат позволяет функция PostForm() из пакета net/http. Запрос можно отправить по протоколам HTTP и HTTPS, при этом все перенаправления автоматически обрабатываются. Если перенаправлений больше десяти, то запрос завершается с ошибкой. Формат функции:

http.Head(url string) (resp *http.Response, err error)

Функция в качестве параметра принимает URL-адрес в виде строки.

Обратите внимание: мы не имеем возможности формировать заголовки запроса, поэтому используются значения заголовков по умолчанию. Например, значением заголовка User-Agent (название нашего робота) будет Go-http-client/1.1.

Функция возвращает два значения. Через первое возвращаемое значение доступен указатель на объект структуры Response, с помощью которого можно обработать результат. Через второе возвращаемое значение доступен объект ошибки или значение nil, если операция выполнена успешно.

Выполним запрос методом HEAD и выведем полученные заголовки ответа сервера (листинг 19.6).

Листинг 19.6. Отправка запроса методом HEAD

package main

import (
   "fmt"
   "net/http"
)

func main() {
   resp, err := http.Head("http://localhost/index.php")
   if err != nil {
      fmt.Println(err)
      return
   }
   defer resp.Body.Close()
   if resp.StatusCode >= 300 {
      fmt.Println("Статус:", resp.Status)
      return
   }
   fmt.Println("Статус:", resp.Status)
   for k, v := range resp.Header {
      fmt.Println(k, "=>", v)
   }
}

Если все сделано правильно, то отобразится нечто подобное:

Статус: 200 OK
Content-Type => [text/html; charset=UTF-8]
Content-Language => [ru]
Date => [Mon, 02 May 2022 18:55:50 GMT]
Server => [Apache/2.4.29 (Win32) OpenSSL/1.1.0g PHP/7.2.0]
X-Powered-By => [PHP/7.2.0]

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp