2013-06-27 14 views
8
Server response : HTTP Status 415 - Unsupported Media Type 

Sto cercando di inviare dati JSON all'URL dallo script di google ma ottenendo l'errore sopra riportato. Ecco il mio codice:Utilizzo di script di Google Apps per postare dati JSON

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); 

} 

Ho provato a cambiare il tipo di contenuto, ma non ha funzionato .La AUTHCODE sta funzionando perché sono in grado di ottenere dal URL.

Qualcuno ha qualche idea su dove sto andando male? Grazie.

risposta

14

Put nelle opzioni oggetto un contentType come questo:

var options = { "method":"POST", 
      "contentType" : "application/json", 
      "headers": headers, 
      "payload" : payload 
      }; 

ContentType è uno dei parametri avanzati che l'operazione di recupero metodo accetta. Vedi di più here.

+0

Grazie mille per l'aiuto ... è stato un grande aiuto .. – Shilpi

+1

Così fastidioso che UrlFetchApp.fetch() ignora/ignora l'intestazione "Content-Type" specificato nell'opzione "header". Mi stavo strappando i capelli per oltre un'ora cercando di capire cosa stavo facendo male finché non sono incappato in questa risposta! –

2

è abbastanza intuitive nella sintassi UrlFetchApp ma questo:

POST /api/ra/v1/ping HTTP/1.0 
Host: app.kigo.net 
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ= 
Content-Type: application/json 

Traduce bene a questo riccio:

ricciolo https://app.kigo.net/api/ra/v1/ping -X POST -H "Autorizzazione: base dXNlcm5hbWU6cGFzc3dvcmQ =" - H "Content-Type: application/json"

Traduci in Script di Google App:

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); 
} 
Problemi correlati