Når en curl-test viser 000 som HTTP-status, har curl ikke modtaget en endelig HTTP-svarkode at rapportere. Webstedet har ikke sendt en faktisk HTTP-status med navnet 000.

Registrer også fejlen

Dette eksempel til en POSIX-shell udskriver det endelige HTTP-felt, CONNECT-feltet og curl-processens exitkode:

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"

Erstat eksemplets endepunkt med din HTTP-proxy eller en kandidat fra listen over HTTP-proxyer. Behold show-error aktiveret: fejlmeddelelsen er ofte den nyttigste del. CONNECT-feltet er relevant, når der bruges en tunnel; det er ikke en anden endelig status fra webstedet.

Læs værdierne samlet

  • En mislykket forbindelse til proxyen kan efterlade HTTP-feltet på 000.
  • En timeout før modtagelsen af et svar kan give samme resultat.
  • Et vellykket CONNECT-svar efterfulgt af en TLS-fejl kan vise connect=200 og http=000.
  • Et fuldstændigt svar fra webstedet, for eksempel 403, er anderledes: der er et faktisk HTTP-svar at undersøge.

Den præcise exitkode og meddelelsen indsnævrer årsagen. Undersøg, om fejlen opstod under lokalisering af proxyen, forbindelsen til dens port, tunnelforhandlingen eller verificeringen af destinationen.

Reducer ikke alle resultater til en statuskontrol

Et script, der kun gemmer http_code, smider transportfejlen væk. Gem også procesresultatet og en fejlmeddelelse renset for følsomme oplysninger. Omvendt kan curl gennemføre en overførsel uden fejl, selv om webstedet returnerer en fejlstatus, medmindre du bruger en passende fail-indstilling. HTTP-svaret og klientens kørselsresultat besvarer forskellige spørgsmål.

Forsøg ikke at rette 000 ved at slå TLS-verificering fra eller tilføje en vilkårlig header. Find først ud af, hvilken handling der aldrig nåede frem til et endeligt svar.

Relaterede artikler