【发布时间】:2019-05-08 06:38:12
【问题描述】:
我在 GAS 中遇到了一些问题。我使用需要 Cookie 来进行 POST 请求的 API。什么时候,我用 Postman 尝试它可以工作,但使用脚本我仍然收到 405 错误:/
首先,我发出一个登录请求,它返回一个类似这样的 cookie:JSESSIONID=D55B09A9076826AB6FC35B79B803C3F4; Path=/lambdapath; Secure; HttpOnly,authash=29cb2e5466f8a923da588fa55914fd72
然后,我构建一个这样的 POST 请求:
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);
}
}
当我记录标题时,它会返回:
"headers": {
"method": "post",
"contentType": "application/json",
"Cookie": "JSESSIONID=D55B09A9076826AB6FC35B79B803C3F4; Path=/lambdapath; Secure; HttpOnly,authash=29cb2e5466f8a923da588fa55914fd72",
"payload": "{\"foo\":\"bar\"}"
}
}
感谢您的帮助:)
编辑
感谢@DimuDesign。它在以这种格式传递选项时起作用:
var options = {
'method': 'post',
'contentType': 'application/json',
'headers': {
'cookie': 'JSESSIONID=D55B09A9076826AB6FC35B79B803C3F4; Path=/lambdapath; Secure; HttpOnly,authash=29cb2e5466f8a923da588fa55914fd72'
},
'payload' : JSON.stringify(body)
}
【问题讨论】:
标签: javascript google-apps-script http-status-code-405 urlfetch