Как работать с типом контента azip и приложением кодирования контента / a-gzip в GoLang? - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь использовать API App Store Connect для загрузки отчетов о финансах и продажах с помощью GoLang.

Я успешно подключил вызов к серверу API App Store и получил правильный вывод.

ByЯ не могу загрузить эти отчеты, так как они отправляют ответ в байтах с типом содержимого "azip".

Ниже мой код Go:

url := "https://api.appstoreconnect.apple.com/v1/salesReports?filter[frequency]=DAILY&filter[reportType]=SUBSCRIPTION_EVENT&filter[reportSubType]=SUMMARY&filter[vendorNumber]=87389901&filter[reportDate]=2018-10-12&filter[version]=1_1"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IjZROUM1WVc0N1QifQ.eyJpc3MiOiI2OWE2ZGU5MC00NGNiLTQ3ZTMtZTA1My01YjhjN2MxMWE0ZDEiLCJleHAiOjE1NDIyNzM0MzcsImF1ZCI6ImFwcHN0b3JlY29ubmVjdC12MSJ9.fC4zmgaUZZTwtopt9gaSl6HUtACNjBvWi5VNa366d5FI5l_00wM1U2cBi26a0jtB8yuZOufDSQA0MB5iMC332g")

res, _ := http.DefaultClient.Do(req)

fmt.Println(res.Header.Get("Content-Encoding"))

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

Ниже приведены заголовки, чтоя получаю.

Server = daiquiri/3.0.0
Date  = Thu, 15 Nov 2018 12:01:47 GMT
Content-Type = application/a-gzip
Transfer-Encoding = chunked
Connection  = keep-alive
requestId = 24e0c473-a35f-4374-846c-d17007c49978
Content-Encoding = agzip
Content-Disposition → attachment;filename = Subscription_Event_87389901_20181012_V1_1.txt.gz
x-reports-filename = Subscription_Event_87389901_20181012_V1_1.txt.gz
x-reports-download-version = 1_1
Strict-Transport-Security = max-age=31536000; includeSubDomains
X-XSS-Protection = 1; mode=block
X-Content-Type-Options = nosniff
Host = reportingitc-reporter-internal.corp.apple.com
X-Frame-Options = SAMEORIGIN
X-Request-ID = QSBM3FPCNVUODU2H5FCQRL5T
X-Rate-Limit = user-hour-lim:3600;user-hour-rem:3599;
x-daiquiri-instance = daiquiri:38493001:pv50p00it-hyhk12043901:13987:18O38

Возможно, я делаю что-то не так.Но, пожалуйста, дайте мне знать, как я могу сохранить это как файл, используя GoLang.

...