HTTP-запросы
Напиши на Go программу, которая будет выводить коды ответов на HTTP-запросы по двум URL-адресам (например, главная страница Google и главная страница Avito). Запросы должны осуществляться параллельно.
Вот пример программы на Go, которая выводит коды ответов на HTTP-запросы по двум URL-адресам, выполняя запросы параллельно:
Давайте разберем этот код:
Объяснение кода
Мы определяем два URL-адреса, по которым будем делать запросы:
https://www.google.com
иhttps://www.avito.ru
.Создаем канал
results
для отправки результатов запросов. Размер канала равен количеству URL-адресов, чтобы избежать блокировки горутин, ожидающих отправки результатов.Создаем группу
sync.WaitGroup
для ожидания завершения всех горутин.Запускаем горутины для выполнения HTTP-запросов по каждому URL-адресу. Внутри каждой горутины:
Отправляем HTTP-запрос с помощью
http.Get(url)
.Если возникает ошибка, отправляем код ответа 0 в канал
results
.Если запрос успешен, отправляем код ответа в канал
results
.Уменьшаем счетчик в группе
sync.WaitGroup
с помощьюwg.Done()
.
Ждем завершения всех горутин с помощью
wg.Wait()
.Закрываем канал
results
.Выводим коды ответов, полученные из канала
results
.
Таким образом, программа выполняет HTTP-запросы по двум URL-адресам параллельно, используя горутины, и выводит коды ответов на эти запросы.
Last updated