应用程序脚本-UrlFetchApp.fetch{url,method:";get";}to a gzip失败,代码为406 [英] Apps Script - UrlFetchApp.fetch {url, method: "GET"} to a gzip gets failed with code 406
本文介绍了应用程序脚本-UrlFetchApp.fetch{url,method:";get";}to a gzip失败,代码为406的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在这里进行了几个月的探索。如有任何帮助,我们将不胜感激!
我正在尝试使用UrlFetchApp.fetch()在App Store Connect上通过API进行连接。在沙漠中挣扎着为天然气身份验证生成正确的JWT之后,我现在面临着严峻的现实:服务器的答案(内容类型和内容编码)不是JSON,而是GZIP。
代码406消息: "截断的服务器响应:此请求不支持提供的Accept标头。请求:允许的应用程序/json:应用程序/a-gzip"是否仍有办法访问该文件?
这里是仅执行调用的代码部分(用于身份验证的JWT签名代码在上面->"sJWT")
var url = "https://api.appstoreconnect.apple.com/v1/financeReports?filter[regionCode]=ZZ&filter[reportDate]=2019-11&filter[reportType]=FINANCIAL&filter[vendorNumber]=xxx"
var response = UrlFetchApp.fetch(url, { method : "GET", headers : { "Authorization" : "Bearer "+sJWT }});
非常感谢!
推荐答案
此答案如何?请将此视为几个可能的答案之一。
修改点:
- 当我看到the official document时,要求在请求头中使用
application/a-gzip
forAccept
。 - ,在本例中,响应还返回gzip的内容。因此需要对内容进行解压缩。
当以上几点反映到您的脚本中时,如何进行以下修改?
修改后的脚本:
var url = "https://api.appstoreconnect.apple.com/v1/financeReports?filter[regionCode]=ZZ&filter[reportDate]=2019-11&filter[reportType]=FINANCIAL&filter[vendorNumber]=xxx"
var response = UrlFetchApp.fetch(url, {
method: "GET",
headers: {
"Authorization": "Bearer " + sJWT,
"Accept": "application/a-gzip" // Added
}
});
var res = Utilities.ungzip(response.getBlob()); // Added
注意:
- 以上修改后的脚本假定您的URL和
sJWT
的值对于使用API是正确的。
引用:
不幸的是,我无法测试上述脚本。我为此道歉。因此,如果上述修改后的脚本不能解决您的问题,我深表歉意。这篇关于应用程序脚本-UrlFetchApp.fetch{url,method:";get";}to a gzip失败,代码为406的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文