2017-03-09 6 views
-1

Ich möchte überprüfen, ob eine große Datei auf einem Web-Server vorhanden ist golang mit:Wie überprüft man, ob eine Web-Datei existiert oder nicht?

resp, err := http.Get("http://aa.com/aa.mp4") 
if err != nil { 
    return false 
    } 
if resp.StatusCode != http.StatusOK { 
    return false 
} 

kann ich bekommen, was ich will, aber die aa.mp4 ist eine große Datei, so dass diese Art und Weise sieht nicht optimal. Gibt es eine andere Art und Weise?

+1

Das ist eine Nachricht-Körper in der Antwort nicht zurückkehren muss nicht, wie HTTP funktioniert: HTTP als keine Vorstellung von "Datei existiert auf Webserver". Je nach Server könnten Sie eine HEAD-Anfrage versuchen. – Volker

Antwort

4

Sie können eine HEAD-Anfrage tun, anstatt http.Head()

Es ist das gleiche wie ein GET aber nicht den Körper herunterladen.

resp, err := http.Head("http://aa.com/aa.mp4") 
    if err != nil { 
    return false 
    } 
    if resp.StatusCode != http.StatusOK { 
    return false 
    } 

Von der HTTP-Spezifikation:

Die HEAD-Methode identisch ist außer GET, dass der Server

Verwandte Themen