Próbuję POST na usługę internetową, która spodziewa się uzyskać JSON jako ładunek za pomocą Google Apps Script. Używam następujący kod:Skrypt Google Apps UrlFetchApp z 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);
po stronie serwera Dostaję następujący błąd:
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
jestem przy założeniu, że serwer spodziewa się dostać
{ "endDate": "2012-06-03" }
zamiast
endDate=2012-06-03
, ale nie wiem, jak zrobić UrlFetchApp to zrobić.
Mówi się o ładowności w link:”... To może być ciągiem, tablica bajtów lub klucz JavaScript/mapa wartości. Zobacz przykład. ". Kiedy próbuję twojej propozycji, otrzymuję kod błędu 400 z serwera. Próbowałem 'Utilities.jsonStringify' również z tym samym kodem odpowiedzi 400. – Guy
Ale czy komunikat o błędzie po stronie serwera jest taki sam? Spróbuj uchwycić żądanie, aby zobaczyć, jak wygląda ciało. –
Komunikat o błędzie jest inny, ponieważ nie otrzymuję wcale żądania do serwera (400). Nie mogę przechwycić żądania od strony klienta (Google Apps Script) i nie widzę, by przekazywał on Tomcat. Brak śladu w dziennikach Tomcat. – Guy