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

Tôi đang cố gắng đăng dữ liệu JSON vào URL từ tập lệnh google nhưng nhận được lỗi ở trên. Đây là mã của tôi:Sử dụng Google Apps Script để đăng dữ liệu 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); 

} 

tôi đã cố gắng thay đổi nội dung-type nhưng đã không làm việc .Công authcode đang làm việc vì tôi có thể nhận được từ URL.

Bất kỳ ai có bất kỳ ý tưởng nào về nơi tôi đang gặp sự cố? Cảm ơn.

Trả lời

14

Đặt trong lựa chọn của bạn phản đối một contentType như thế này:

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

ContentType là một trong những thông số cao cấp mà các phương pháp lấy chấp nhận. Xem thêm here.

+0

Cảm ơn rất nhiều vì đã giúp ... đó là một trợ giúp lớn .. – Shilpi

+1

Vì vậy, gây phiền nhiễu mà UrlFetchApp.fetch() không quan tâm đến/ghi đè "Content-Type" tiêu đề quy định tại các "tiêu đề" tùy chọn. Tôi đã rách tóc ra trong hơn một giờ cố gắng tìm ra những gì tôi đã làm sai cho đến khi tôi vấp phải câu trả lời này! –

2

Nó là khá truy cập trực quan trong cú pháp UrlFetchApp nhưng điều này:

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

: dịch độc đáo để curl này:

curl https://app.kigo.net/api/ra/v1/ping -X POST -H "Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ =" - H "Loại Nội dung: ứng dụng/json"

Dịch sang tập lệnh này trong 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); 
} 
Các vấn đề liên quan