【问题标题】:Javascript API GET Request fails with code 404. Truncated server responseJavascript API GET 请求失败,代码为 404。服务器响应被截断
【发布时间】:2020-01-15 08:03:02
【问题描述】:

我正在尝试使用 google app 脚本通过外部 API 获取数据,但我不断收到 Request failed for https://api.10000ft.com returned code 404。服务器响应被截断:

在调试时,它告诉我响应未定义。我可能做错了什么?

代码如下:

function fetchSheet() {
var response = UrlFetchApp.fetch('https://api.10000ft.com/api/v1/users//time_entries?from=2020-01-06&to=2020-01-14&auth=token');
Logger.log(response.getContentText());
}

【问题讨论】:

  • api.10000ft.com 是否允许跨源请求?
  • 嗨 – Jaromanda X,是的
  • 截断的服务器响应是什么?
  • // 中的users // time 是错字吗?
  • TheMaster 这里是响应消息 Request failed for api.10000ft.com 返回代码 404。截断的服务器响应:{"message":"not found"}(使用 muteHttpExceptions 选项检查完整响应) (第 2 行,文件“GetTimehseets”)

标签: javascript rest api google-apps-script get


【解决方案1】:

我尝试从 Postman 发送相同的请求,但我收到的消息是“无效或缺少身份验证令牌”,而不是 404。 看来您需要添加标题字段。

你应该尝试这样的事情(并检查从哪里获取访问令牌):

function fetchSheet(accessToken) {
   var headers = {
      headers: {
         Authorization: 'Bearer ' + accessToken
      }
   }
   var response = UrlFetchApp.fetch('https://api.10000ft.com/api/v1/users/time_entries?from=2020-01-06&to=2020-01-14&auth=token', headers);
   Logger.log(response.getContentText());
}

另外,url 似乎不符合 REST 的结构:.../users/HERE_SHOULD_BE_A_USER_ID/time_entries?...

我猜你最初使用双斜杠的错误是你错过了这个路径参数。

【讨论】:

  • 我还意识到我的端点结构不正确。通过编辑重用您的代码并且工作正常。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-29
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多