我在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\"}"
}
}
答案 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;