Server response : HTTP Status 415 - Unsupported Media Type
I am trying to post JSON data to the URL from google script but getting the above error. Here is my code:
function myFunctionpost() {
var url = "http://abc.xyz.org/jira/rest/api/2/issue";
var data = {"project":{ "key": "KEY"},"summary": "create issue.", "description": "Creating of an issue from google spreadsheet using the REST API", "issuetype": {"name": "Bug"}} ;
var payload = JSON.stringify(data);
var headers = { "Accept":"application/json",
"Content-Type":"application/json",
"Authorization":"Basic _authcode_"
};
var options = { "method":"POST",
"headers": headers,
"payload" : payload
};
var response = UrlFetchApp.fetch(url, options);
Logger.log(response);
}
I tried changing the content-type but didn’t work .The authcode is working because I am able to GET from the URL.
Anybody has any idea about where I am going wrong? Thanks.
Put in your options object a contentType like this:
var options = { "method":"POST",
"contentType" : "application/json",
"headers": headers,
"payload" : payload
};
ContentType is one of the advanced parameters that the fetch method accepts. See more here.
It is pretty counter intuitive in UrlFetchApp syntax but this:
POST /api/ra/v1/ping HTTP/1.0
Host: app.kigo.net
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Translates nicely to this curl:
curl https://app.kigo.net/api/ra/v1/ping -X POST -H "Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=" -H "Content-Type: application/json"
Translates to this in Google App Script:
function myFunction() {
var headers = {
"Authorization" : "Basic dXNlcm5hbWU6cGFzc3dvcmQ="
};
var options =
{
"contentType" : "application/json",
"method" : "post",
"headers" : headers,
"payload" : "test"
};
var response = UrlFetchApp.fetch("https://app.kigo.net/api/ra/v1/ping", options);
}
来源:https://stackoverflow.com/questions/17351937/using-google-apps-script-to-post-json-data