Tôi đang cố gắng BÀI ĐĂNG đến một dịch vụ web đang mong nhận JSON làm trọng tải bằng Google Apps Script. Tôi đang sử dụng đoạn mã sau:Google Apps Script UrlFetchApp với JSON Payload
var options =
{
"method" : "post",
"contentType" : "application/json",
"headers" : {
"Authorization" : "Basic <Base64 of user:password>"
},
"payload" : { "endDate": "2012-06-03" }
};
var response = UrlFetchApp.fetch("http://www.example.com/service/expecting/json", options);
Về phía server Tôi nhận được lỗi sau:
WARN [facade.SettingsServlet] 04 Jun 2012 15:30:26 - Unable to parse request body: endDate=2012-06-03
net.liftweb.json.JsonParser$ParseException: unknown token e
Tôi giả định rằng các máy chủ được mong đợi để có được
{ "endDate": "2012-06-03" }
thay vì
endDate=2012-06-03
nhưng tôi không biết cách làm cho UrlFetchApp làm điều đó.
Người ta nói về tải trọng trong liên kết:" ... Nó có thể là một String, một mảng byte, hoặc một chìa khóa JavaScript/value map. Xem ví dụ. " Khi tôi thử đề xuất của bạn, tôi nhận được mã Lỗi 400 từ máy chủ. Tôi đã thử 'Utilities.jsonStringify' cũng với cùng một mã phản hồi 400. – Guy
Nhưng thông báo lỗi phía máy chủ có giống nhau không? Thử chụp yêu cầu để xem cơ thể trông như thế nào. –
Thông báo lỗi là khác nhau vì tôi không nhận được yêu cầu cho máy chủ ở tất cả (400). Tôi không thể nắm bắt được yêu cầu từ phía máy khách (Google Apps Script) và tôi không thấy yêu cầu đó vượt qua Tomcat. Không theo dõi nó trong nhật ký Tomcat. – Guy