Dieses Kapitel stellt die Methoden für den Datei-Upload und -Download unter Verwendung der Go Resty-Bibliothek vor.
Mehrteiliger Datei-Upload
Laden Sie Dateien über einen mehrteiligen POST-Request hoch
// Lesen Sie zuerst zwei Dateien ein
profilImgBytes, _ := os.ReadFile("/Users/jeeva/test-img.png")
notizenBytes, _ := os.ReadFile("/Users/jeeva/text-file.txt")
// Erstellen Sie einen Resty-Client
client := resty.New()
// Verwenden Sie SetFileReader, um die Datei und Parameter automatisch für den Upload festzulegen
// Verwenden Sie SetFormData, um andere Formularparameter festzulegen
resp, err := client.R().
SetFileReader("profil_img", "test-img.png", bytes.NewReader(profilImgBytes)).
SetFileReader("notizen", "text-file.txt", bytes.NewReader(notizenBytes)).
SetFormData(map[string]string{
"vorname": "Jeevanandam",
"nachname": "M",
}).
Post("http://www.tizi365.com/upload")
Direktes Hochladen lokaler Dateien
Dies ist bequemer als oben, da es direkt lokale Dateien hochladen kann, ohne die Datei zuerst lesen zu müssen.
// Erstellen Sie einen Resty-Client
client := resty.New()
// Verwenden Sie SetFile, um die hochzuladende Datei und das gebundene Anforderungsfeld festzulegen
resp, err := client.R().
SetFile("profil_img", "/Users/jeeva/test-img.png").
Post("http://myapp.com/upload")
// Stapelweise Dateien hochladen mit SetFiles
resp, err := client.R().
SetFiles(map[string]string{
"profil_img": "/Users/jeeva/test-img.png",
"notizen": "/Users/jeeva/text-file.txt",
}).
Post("http://myapp.com/upload")
// Stapelweise Dateien hochladen und gleichzeitig andere Formularparameter festlegen
resp, err := client.R().
SetFiles(map[string]string{
"profil_img": "/Users/jeeva/test-img.png",
"notizen": "/Users/jeeva/text-file.txt",
}).
SetFormData(map[string]string{
"vorname": "Jeevanandam",
"nachname": "M",
"PLZ": "00001",
"Stadt": "meine Stadt",
"Zugriffs_token": "C6A79608-782F-4ED0-A11D-BD82FAD829CD",
}).
Post("http://myapp.com/profil")
Dateien herunterladen
// Erstellen Sie einen Resty-Client
client := resty.New()
// Legen Sie das Ausgabeverzeichnis für Dateien fest. Resty erstellt es automatisch, wenn es nicht vorhanden ist
// Diese Einstellung ist optional, wenn der SetOutput-Parameter mit einem absoluten Pfad festgelegt ist.
client.SetOutputDirectory("/Users/tizi365/Downloads")
// Senden Sie hier eine HTTP-Anforderung und speichern Sie das Anfrageergebnis im durch SetOutput festgelegten Dateipfad
_, err := client.R().
SetOutput("plugin/ReplyWithHeader-v5.1-beta.zip").
Get("http://bit.ly/1LouEKr")
// Hier ist ein Beispiel für die Verwendung eines absoluten Pfads
_, err := client.R().
SetOutput("/MyDownloads/plugin/ReplyWithHeader-v5.1-beta.zip").
Get("http://bit.ly/1LouEKr")