UrlFetchApp上出现500错误

时间:2015-03-27 12:07:36

标签: api rest magento google-apps-script

我正在尝试将产品列表的数据从Magento API传递到Google Spreadsheet。 Magento API不需要身份验证,因为我是以Guest身份检索数据。 API与RestClient完美配合。

但是,从Googe Apps Script获取REST资源时发生了500错误。

Exception: Request failed for
http://mymagentohost/api/rest/products?limit=2
returned code 500. Truncated server response: Service temporary
unavailable (use muteHttpExceptions option to examine full response) 

这是我的Google Apps脚本:

function myscript() {
  var url = "http://mymagentohost/api/rest/products?limit=2"
  var response = UrlFetchApp.fetch(url);

  var out = JSON.parse(response.getContentText());
  var doc = SpreadsheetApp.create("Product Info");
  var cell = doc.getRange('a1');
  var index = 0;
  for (var i in out) {
  var value = out[i];
  cell.offset(index, 0).setValue(i);
  cell.offset(index, 1).setValue(value);
  index++;
}

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

嘿,诀窍是将以下标题添加到您的请求中

var url = "http://mymagentohost/api/rest/products?limit=2"

var params = { 
  headers: { 'Content-Type': "application/json", 'Accept': "application/json"},
  muteHttpExceptions: true,
  method: "GET",
  contentType: "application/json",
  validateHttpsCertificates: false,
};

var response = UrlFetchApp.fetch(url, params);

相信Magento的关键参数不会返回500"服务暂时不可用"是Content-Type和Accept标题,但是示例中提到的所有参数都很有用,YMMV。