Add timeouts
This commit is contained in:
9
main.go
9
main.go
@@ -11,6 +11,11 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// HTTP клиент с таймаутом
|
||||
var httpClient = &http.Client{
|
||||
Timeout: 30 * time.Second,
|
||||
}
|
||||
|
||||
func main() {
|
||||
if len(os.Args) != 3 {
|
||||
fmt.Println("Usage: program <json-file> <output-dir>")
|
||||
@@ -76,7 +81,7 @@ func fileExtension(url string) string {
|
||||
"image/svg+xml": ".svg",
|
||||
}
|
||||
|
||||
resp, err := http.Head(url)
|
||||
resp, err := httpClient.Head(url)
|
||||
if err == nil {
|
||||
ct := resp.Header.Get("Content-Type")
|
||||
if ext, ok := contentTypes[ct]; ok {
|
||||
@@ -113,7 +118,7 @@ func downloadImage(url, filename string) error {
|
||||
|
||||
// Одна попытка скачивания
|
||||
func attemptDownload(url, filename string) error {
|
||||
resp, err := http.Get(url)
|
||||
resp, err := httpClient.Get(url)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
Reference in New Issue
Block a user