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

पर पोस्ट करने के लिए Google Apps स्क्रिप्ट का उपयोग करके मैं JSON डेटा को Google स्क्रिप्ट से यूआरएल पर पोस्ट करने की कोशिश कर रहा हूं लेकिन उपर्युक्त त्रुटि प्राप्त कर रहा हूं।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); 

} 

मैं सामग्री प्रकार को बदलने की कोशिश की लेकिन व्याप्ति authcode काम कर रहा है काम नहीं किया क्योंकि मैं URL से प्राप्त करने में सक्षम हूँ: यहाँ मेरी कोड है।

किसी को भी इस बारे में कोई जानकारी है कि मैं कहां गलत हो रहा हूं? धन्यवाद।

अपने विकल्पों में

उत्तर

14

रखें इस तरह एक contentType वस्तु:

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

ContentType उन्नत मापदंडों कि लाने विधि स्वीकार करता है में से एक है। अधिक here देखें।

+0

धन्यवाद मदद करने के लिए एक बहुत ... यह एक बहुत मदद .. था – Shilpi

+1

तो कष्टप्रद UrlFetchApp.fetch() की उपेक्षा करता है कि/"सामग्री प्रकार" शीर्षक "हेडर" विकल्प में निर्दिष्ट ओवरराइड करता है। जब तक मैं इस जवाब में ठोकर नहीं लगाता तब तक मैं यह समझने की कोशिश कर रहा था कि मैं क्या कर रहा था, एक घंटे से अधिक समय तक अपने बालों को फाड़ रहा था! –

2

यह बहुत काउंटर UrlFetchApp वाक्य रचना में सहज है, लेकिन इस:

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

इस कर्ल करने के लिए अच्छी तरह से अनुवाद करता है:

कर्ल https://app.kigo.net/api/ra/v1/ping -X पोस्ट एच "प्राधिकरण: बेसिक dXNlcm5hbWU6cGFzc3dvcmQ =" - एच "सामग्री-प्रकार: एप्लिकेशन/जेसन"

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); 
} 
संबंधित मुद्दे