Bu bölüm, Go Resty kitaplığını kullanarak dosya yükleme ve indirme yöntemlerini tanıtır.
Çok Parçalı Dosya Yükleme
Dosyaları Çok Parçalı POST isteği aracılığıyla yükleme
// Önce iki dosyayı okuyun
profileImgBytes, _ := os.ReadFile("/Users/jeeva/test-img.png")
notesBytes, _ := os.ReadFile("/Users/jeeva/text-file.txt")
// Bir Resty istemcisi oluşturun
client := resty.New()
// Dosyayı ve parametreleri otomatik olarak yüklemek için SetFileReader'ı kullanın
// Diğer form parametrelerini ayarlamak için SetFormData'yı kullanın
resp, err := client.R().
SetFileReader("profile_img", "test-img.png", bytes.NewReader(profileImgBytes)).
SetFileReader("notes", "text-file.txt", bytes.NewReader(notesBytes)).
SetFormData(map[string]string{
"first_name": "Jeevanandam",
"last_name": "M",
}).
Post("http://www.tizi365.com/upload")
Doğrudan Yerel Dosyaları Yükleme
Bu, dosyayı önceden okuma gereksinimi olmadan doğrudan yerel dosyaları yükleyebildiği için yukarıdakinden daha kullanışlıdır.
// Bir Resty istemcisi oluşturun
client := resty.New()
// Yüklemek için SetFile'ı kullanın ve bağlı istek parametre alanını ayarlayın
resp, err := client.R().
SetFile("profile_img", "/Users/jeeva/test-img.png").
Post("http://myapp.com/upload")
// SetFiles kullanarak dosyaları topluca yükleyin
resp, err := client.R().
SetFiles(map[string]string{
"profile_img": "/Users/jeeva/test-img.png",
"notes": "/Users/jeeva/text-file.txt",
}).
Post("http://myapp.com/upload")
// Aynı anda toplu dosya yükleme ve diğer form parametrelerini ayarlayın
resp, err := client.R().
SetFiles(map[string]string{
"profile_img": "/Users/jeeva/test-img.png",
"notes": "/Users/jeeva/text-file.txt",
}).
SetFormData(map[string]string{
"first_name": "Jeevanandam",
"last_name": "M",
"zip_code": "00001",
"city": "my city",
"access_token": "C6A79608-782F-4ED0-A11D-BD82FAD829CD",
}).
Post("http://myapp.com/profile")
Dosya İndirme
// Bir Resty istemcisi oluşturun
client := resty.New()
// Dosya çıkış dizinini ayarlayın, Resty otomatik olarak oluşturacaktır eğer yoksa
// SetOutput parametresi mutlak bir yol ile ayarlandıysa, bu ayar opsiyoneldir.
client.SetOutputDirectory("/Users/tizi365/Downloads")
// Burada bir HTTP isteği gönderin ve SetOutput parametresi ile belirtilen dosya yoluna istek sonucunu kaydedin
_, err := client.R().
SetOutput("plugin/ReplyWithHeader-v5.1-beta.zip").
Get("http://bit.ly/1LouEKr")
// İşte mutlak bir yol kullanarak bir örnek
_, err := client.R().
SetOutput("/MyDownloads/plugin/ReplyWithHeader-v5.1-beta.zip").
Get("http://bit.ly/1LouEKr")