Senior
**Շարք** Մի քանի URL-ների հարցումները պետք է կատարվեն միաժամանակ։ Հաշվեք HTTP վիճակները, կառավարեք սխալները։ ```go package main func main() { urls := []string{"[link]"} // Մի բան արա } ```
sobes.tech AI
Պատասխան AI-ից
Ниже пример на Go, который выполняет параллельные HTTP-запросы к нескольким URL, выводит HTTP-статусы и обрабатывает ошибки:
package main
import (
"fmt"
"net/http"
"sync"
)
func main() {
urls := []string{
"https://golang.org",
"https://invalid.url",
"https://github.com",
}
var wg sync.WaitGroup
wg.Add(len(urls))
for _, url := range urls {
go func(u string) {
defer wg.Done()
resp, err := http.Get(u)
if err != nil {
fmt.Printf("Ошибка запроса к %s: %v\n", u, err)
return
}
defer resp.Body.Close()
fmt.Printf("URL: %s, Status: %s\n", u, resp.Status)
}(url)
}
wg.Wait()
}
В этом примере:
- Используется
sync.WaitGroupдля ожидания завершения всех горутин. - Каждому URL соответствует отдельная горутина, которая делает HTTP GET.
- Ошибки выводятся в консоль.
- Для успешных запросов выводится HTTP-статус.