我有这个谷歌脚本函数,它使用以下 Json REST API:
function TESOURODIRETO() {
let srcURL = "https://www.tesourodireto.com.br/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json";
let jsondata = UrlFetchApp.fetch(srcURL);
}
此函数几天前运行良好,但现在返回以下错误:
异常:请求失败 https://www.tesourodireto.com.br 返回代码 403。服务器响应被截断:请稍等...
注意这是一个公共 json API,我可以直接从浏览器调用它,没有问题:
https://www.tesourodireto.com.br/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json
我猜域名开始阻止来自谷歌脚本服务器的调用。
我想知道是否有任何方法可以绕过/解决它,首先从另一个公共 REST API 调用这个 json API,然后在我的 google 脚本函数上调用这个中间 API。
所以新代码将是这样的:
function TESOURODIRETO() {
let srcURL = "https://www.tesourodireto.com.br/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json";
let intermediate_API = "<REST_API>"
let jsondata = UrlFetchApp.fetch(intermediate_API + srcURL);
}
我试图找到一个 REST API 来执行此工作/绕过,但我找不到它。
此函数向您提供的 URL 发出 HTTP 请求,我已添加了要求您获取响应的所需选项。以及更正使用 UrlFetch 的格式。
在复制过程中。 URL 端点似乎要求使用 muteHttpException 选项才能通过 URL。遵循此复制过程所需的内容。我已经添加了 URL 端点所要求的正确选项。
function myFunction() {
options = {muteHttpExceptions: true};
var response = UrlFetchApp.fetch("https://www.tesourodireto.com.br/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json", options);
console.log(response.getContentText())
}