【问题标题】:Quandl API returns HTML response on Google appscriptQuandl API 在 Google appscript 上返回 HTML 响应
【发布时间】:2019-10-13 08:31:53
【问题描述】:

对 quandl 的 API 请求,用于获取返回 HTML 响应而不是 JSON 的股票数据。它在邮递员中正确返回 JSON 结果。

var url ='https://www.quandl.com/api/v3/datasets/BSE/BOM'+532540+'?start_date='+startDate+'&end_date='+endDate+'&collapse=weekly&api_key=myapikey'
  console.log(url)
  var options =
      {
        'muteHttpExceptions': true,
        "contentType" : "application/json",
      };
  var response = UrlFetchApp.fetch(url, options);
  console.log(response)

有人有解决方法吗?

【问题讨论】:

  • 有什么反应?
  • 其实响应是正确的,并且有json数据。但不是 json 格式,而是 html 格式的标签。

标签: google-apps-script google-sheets urlfetch quandl


【解决方案1】:

问题:

  • 来自 quandl api 的 XML 响应而不是 JSON 响应

解决办法:

  • 明确提及documentation中提到的url格式

    GET https://www.quandl.com/api/v3/datasets/{database_code}/{dataset_code}/data.{return_format}
    
    
    var url ='https://www.quandl.com/api/v3/datasets/BSE/BOM'+532540+'.json?start_date='+startDate+'&end_date='+endDate+'&collapse=weekly&api_key=myapikey'
    

与/或

  • 尝试在使用Accept 标头的请求中提及您只接受json 响应。
  var options =
      {
        'muteHttpExceptions': true,
        "contentType" : "application/json",
        "headers":{"Accept":"application/json"}
      };

【讨论】:

  • 效果很好。 "contentType" : "application/json""headers":{"Accept":"application/json"} 之间有什么区别?我认为两者都指定了结果类型
  • @Ameer 前者指定您发送的内容类型,而后者指定您能够接受/接收的内容类型乙>。在这种情况下实际上不需要前者,因为您没有发送任何数据(查询参数除外,如果作为帖子发送,它应该是 application/x-www-form-urlencoded 而不是json)
猜你喜欢
  • 2020-03-11
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-16
  • 1970-01-01
相关资源
最近更新 更多