Senior
// კოდს სწორად დაარეგულირეთ ისე, რომ მოთხოვნები კონკურენტული იყოს და გამოჩნდეს პასუხის კოდი // და შეცდომის შემთხვევაში, ჩაწერეთ ის ლოგში და გააგრძელეთ დამუშავება package main import "net/http" var addrs = []string{"[link]"} func main() { for _, url := range addrs { resp, err := http.Get(url) if err != nil { log.Error(err) continue } // თუ საჭიროა, process resp } }
sobes.tech AI
პასუხი AI-სგან
go package main
import ( "log" "net/http" "sync" )
var addrs = []string{"https://example.com", "https://golang.org"}
func main() { var wg sync.WaitGroup for _, url := range addrs { wg.Add(1) go func(u string) { defer wg.Done() resp, err := http.Get(u) if err != nil { log.Printf("Error fetching %s: %v", u, err) return } defer resp.Body.Close() log.Printf("Response from %s: %d", u, resp.StatusCode) }(url) } wg.Wait() }
В этом исправленном варианте запросы выполняются конкурентно с помощью горутин. Ошибки логируются, но не прерывают выполнение остальных запросов. Код ответа выводится для каждого успешного запроса.