0

我正在使用 UnderArmour API 并请求 gpx 文件以获取给定位置的路线,并且工作正常。但是,下载需要一段时间,我想根据他们的压缩页面下载一个压缩文件:

所有端点都支持响应压缩。要启用压缩,您的请求必须提供值设置为 gzip 的“Accept-Encoding”。

获取 /7.1/... HTTP/1.1

主办方:api.underarmour.com

接受:应用程序/json

接受编码:gzip

我用来尝试这个的代码在这里(我已经用 XXX 替换了我的用户令牌以保护隐私):

gpxurl <- "https://api.ua.com/v7.1/route/?close_to_location=51.5%2C-0.1&format=gpx&field_set=detailed&limit=40"

r <- GET(gpxurl, add_headers("authorization"=XXX, 
                         "Accept"="application/json",
                         "Accept-Encoding"="gzip"))

我得到的文件似乎没有被压缩。下载时间与下载原始文件的时间一样长,而且我不必进行任何提取。我似乎无法检查 httpbin 收到的标头,因为返回的文件是原始格式,并且 str(content(r)$headers) 失败,因为格式只是从服务器发回的字节的原子向量。它发回的标头如下,其中不包括“Accept”或“Accept-Encoding”标头,如果它正常工作,我希望它们在那里。

str(headers(r))

List of 11
 $ content-type               : chr "application/gpx+xml; charset=UTF-8"
 $ content-length             : chr "3506843"
 $ connection                 : chr "keep-alive"
 $ access-control-allow-origin: chr "*"
 $ date                       : chr "Wed, 28 Feb 2018 17:29:37 GMT"
 $ p3p                        : chr "CP=\"NOI DSP COR CURa ADMa DEVa TAIa OUR BUS IND UNI COM NAV INT\""
 $ server                     : chr "edge-proxy/1.0"
 $ uacf-request-id            : chr "9c573cc7-3589-4987-a297-303722b6e6e9"
 $ x-cache                    : chr "Miss from cloudfront"
 $ via                        : chr "1.1 7db492e48a5d55351dcb787a8a14e113.cloudfront.net (CloudFront)"
 $ x-amz-cf-id                : chr "c7zlkuaUXoYVIsmpZvQlHHpGDNobFJw49nzhlg0_gXuGcbWBS6_zCQ=="
 - attr(*, "class")= chr [1:2] "insensitive" "list"

如何从 UnderArmour API 获取压缩的 GPX 文件?

4

0 回答 0