POST请求和Google Apps脚本中的405错误

时间:2018-12-06 14:26:00

标签: javascript google-apps-script http-status-code-405 urlfetch

我在GAS中的标头方面遇到了一些麻烦。我使用的API要求Cookie才能执行POST请求。何时,我尝试使用Postman进行工作,但使用脚本仍会收到405错误:/

首先,我发出一个登录请求,该请求返回一个如下所示的cookie:ps -aux

然后,我建立一个这样的POST请求:

JSESSIONID=D55B09A9076826AB6FC35B79B803C3F4; Path=/lambdapath; Secure; HttpOnly,authash=29cb2e5466f8a923da588fa55914fd72

当我记录标题时,它返回以下内容:

function createObject(body, cookie) {
  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'Cookie': cookie,
    'payload' : JSON.stringify(body)
  }
  var header = { 'headers': options }
  try {
   var response = UrlFetchApp.fetch("https://urlOftheAPI/create", header); 
    Logger.log('Saved one item :' + response.getResponseCode())
    return response.getResponseCode();
  } catch(err) {
    throw new Error(err); 
  }
}

感谢您的帮助:)

编辑

感谢@DimuDesign。当传递具有以下格式的选项时,它将起作用:

"headers": {
    "method": "post",
    "contentType": "application/json",
    "Cookie": "JSESSIONID=D55B09A9076826AB6FC35B79B803C3F4; Path=/lambdapath; Secure; HttpOnly,authash=29cb2e5466f8a923da588fa55914fd72",
    "payload": "{\"foo\":\"bar\"}"
  }
} 

2 个答案:

答案 0 :(得分:1)

您对require 'string_pattern' puts "32-50:/xN/".gen 的呼叫的格式不正确。查看以下参考文档以获取正确的语法:

https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetch(String,Object)

提示UrlFetchApp.fetch对象是headers对象的高级参数。

答案 1 :(得分:0)

我使用以下代码获取网址:

var url = 'https://api.example.com/';
var response = UrlFetchApp.fetch(url);
var data = JSON.parse(response.getContentText());
var result = data.headers.Cookie;
return result;