我正在尝试通过GAS编辑JIRA中的问题。 看着其他人的代码 (例如 - Using Google Apps Script to Post JSON Data) 我想出了这段代码:
function myFunctionpostTest() {
var username = "username";
var password = "password";
var encCred = Utilities.base64Encode(username+":"+password);
var url = "https://<base_url>/rest/api/2/issue/";
var data = {"project":{ "key": "STUDIO-4499"},"summary": "create
issue.", "issuetype": {"name": "Bug"}} ;
var payload = JSON.stringify(data);
var headers = { "Accept":"application/json",
"Content-Type":"application/json",
"Authorization":"Basic " + encCred,
};
var options = { "method":"POST",
"contentType" : "application/json",
"headers": headers,
"payload" : payload
};
var response = UrlFetchApp.fetch(url, headers);
Logger.log(response);
}
问题在于我一直在收到错误:
请求失败....返回代码405
我缺少什么?为什么这段代码不起作用?
请不要回答cURL示例,因为它与我的问题无关
答案 0 :(得分:0)
似乎脚本中没有使用options
。那么修改如下呢?但我不知道option
对于请求是否正确。对不起,我很抱歉。
var response = UrlFetchApp.fetch(url, headers);
var response = UrlFetchApp.fetch(url, options);
如果这对你没用,我很抱歉。
以下修改过的脚本怎么样?参考是here。
function myFunctionpostTest() {
var username = "username";
var password = "password";
var encCred = Utilities.base64Encode(username+":"+password);
var url = "https://<base_url>/rest/api/2/issue/";
var data = {
"fields": {
"project": {
"key": "STUDIO-4499"
},
"summary": "create \r\n issue.",
"issuetype": {
"name": "Bug"
}
}
};
var payload = JSON.stringify(data);
var headers = {"Authorization":"Basic " + encCred};
var options = {
"method":"POST",
"contentType": "application/json",
"headers": headers,
"payload": payload
};
var response = UrlFetchApp.fetch(url, options);
Logger.log(response);
}
答案 1 :(得分:0)
我已将数据变量更改为
{"update":{"summary":[{"set":"Bug in business logic"}]}};
var url = "https://<base URL>/rest/api/2/issue/41335";
并将选项var中的方法更改为
"method":"PUT",
现在它有效!