HTTP-запросы
Напиши на Go программу, которая будет выводить коды ответов на HTTP-запросы по двум URL-адресам (например, главная страница Google и главная страница Avito). Запросы должны осуществляться параллельно.
package main
import (
"fmt"
"net/http"
"sync"
)
func main() {
// Определяем URL-адреса для запросов
urls := []string{
"https://www.google.com",
"https://www.avito.ru",
}
// Создаем канал для отправки результатов
results := make(chan int, len(urls))
// Создаем группу для ожидания завершения всех горутин
var wg sync.WaitGroup
// Запускаем горутины для выполнения запросов
for _, url := range urls {
wg.Add(1)
go func(url string) {
defer wg.Done()
resp, err := http.Get(url)
if err != nil {
results <- 0
return
}
results <- resp.StatusCode
}(url)
}
// Ждем завершения всех горутин
wg.Wait()
close(results)
// Выводим результаты
for statusCode := range results {
fmt.Println("Код ответа:", statusCode)
}
}Объяснение кода
Last updated