Wie man die Länge einer Datei ohne das herunterladen der Datei in eine cURL-binary get-Anforderung

Ich möchte erstellen Sie eine cURL-Anfrage in einigen C++ - code, das wird mir die Länge einer Datei in einem server, ohne die Datei herunterzuladen. Für die, ich einige cURL-Optionen zu sagen, ich will nur den Header im Anfrage-Antwort, und dann untersuche ich die Antwort zu bekommen die Länge der Datei.

Ich werde die folgenden Optionen für die Anforderung:

curl_easy_setopt(_curl_handle, CURLOPT_HEADER, 1);
curl_easy_setopt(_curl_handle, CURLOPT_NOBODY, 1);

Dann die Verarbeitung der Anfrage, wartet die Antwort, das zeigt eine OK=200, und schließlich Auskunft über die Länge der Datei:

curl_easy_getinfo(_curl_handle, CURLINFO_CONTENT_LENGTH_UPLOAD, &dResult);

Aber ich bekomme eine Datei Länge von -1. Laut cURL-Dokumentation, das bedeutet, dass die Größe ist unbekannt. Wie kann es passieren, dass cURL nicht die Länge der Datei-Informationen von dem server?

  • Es ist nicht ungewöhnlich, dass Informationen nicht zur Verfügung stehen. Versuchen Sie curl --head auf die gleiche URL von der Kommandozeile aus, und sehen, ob es zeigt die Größe der Datei.
  • Wenn ich einen curl --head "https://..." sagt es mir curl: (1) Protocol https not supported or disabled in libcurl. Wenn ich versuche mit "http://" oder ohne "http://" es sagt curl: (7) couldn't connect to host.
  • Verwenden curl --version um zu sehen, was features curl.exe mit kompiliert wurde. Wenn HTTPS und SSL ist nicht erwähnt in den Listen unterstützt, können Sie keine Anfrage HTTPS URLs.
InformationsquelleAutor rturrado | 2011-10-06
Schreibe einen Kommentar