curl testi HTTP statusu kimi 000 göstərirsə, bildirmək üçün yekun HTTP cavab kodu əldə etməyib. Sayt 000 adlı həqiqi HTTP statusu göndərməyib.

Xətanı da qeydə alın

POSIX qabığı üçün bu nümunə yekun HTTP sahəsini, CONNECT sahəsini və curl prosesinin çıxış kodunu göstərir:

curl --proxy http://203.0.113.10:8080 --noproxy '' --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect}\n' https://example.com/
result=$?
printf 'curl_exit=%s\n' "$result"

Nümunədəki son nöqtəni öz HTTP proksinizlə və ya HTTP proksi siyahısından bir namizədlə əvəz edin. show-error aktiv qalsın: xəta mesajı çox vaxt ən faydalı hissədir. CONNECT sahəsi tuneldən istifadə ediləndə əhəmiyyətlidir; saytın ikinci yekun statusu deyil.

Dəyərləri birlikdə oxuyun

  • Proksiyə qoşulma uğursuz olarsa, HTTP sahəsi 000 qala bilər.
  • Cavab alınmazdan əvvəl gözləmə vaxtının bitməsi eyni nəticəni verə bilər.
  • Uğurlu CONNECT cavabından sonra TLS xətası baş verərsə, connect=200 və http=000 görünə bilər.
  • Saytın 403 kimi tam cavabı fərqli haldır: yoxlamaq üçün həqiqi HTTP cavabı var.

Dəqiq çıxış kodu və mesaj səbəbi daraltmağa kömək edir. Xətanın proksi tapılarkən, onun portuna qoşularkən, tunel razılaşdırılarkən, yoxsa təyinat yoxlanılarkən baş verdiyini müəyyənləşdirin.

Hər nəticəni yalnız status yoxlamasına endirməyin

Yalnız http_code saxlayan skript nəqliyyat xətasını itirir. Prosesin nəticəsini və həssas məlumatlardan təmizlənmiş xəta mesajını da saxlayın. Əksinə, uyğun fail seçimi istifadə etməsəniz, sayt xəta statusu qaytarsa belə curl ötürməni uğurla bitirə bilər. HTTP cavabı ilə müştərinin icra nəticəsi fərqli suallara cavab verir.

TLS yoxlamasını söndürməklə və ya təsadüfi başlıq əlavə etməklə 000 dəyərini düzəltməyə çalışmayın. Əvvəl hansı əməliyyatın yekun cavaba çatmadığını müəyyən edin.

Əlaqəli məqalələr