Я пишу скрипт приложения Google, который обращается к нескольким API с помощью UrlFetchApp.
Один из моих запросов POST API ожидает целочисленного значения в полезной нагрузке, но UrlFetchApp.fetch изменяет целочисленное значение (то есть 0) на float (то есть 0,0)
Мои варианты выглядят примерно так:
const options = { method: 'POST', headers: {...}, payload: { someStringA: "foo", someStringB: "bar", App: 0 } }
И сообщение об ошибке, возвращаемое API, выглядит следующим образом:
{"message":"The request is invalid.","modelState":{"request.App":["The value '0.0' is not valid for App.","The App field is required."]}}
UrlFetchApp.fetch преобразовал значение моего приложения: 0 в: 0,0, которое эта конечная точка API не принимает.
Вместо этого я попытался принудительно установить значение запроса на строку 0, но API не принимает строковый тип для этого свойства.
Кто-нибудь знает обходной путь для этого? Как я могу указать UrlFetchApp.fetch сохранять целочисленные значения как есть, а не преобразовывать их в числа с плавающей запятой?
пс. тот же запрос работает нормально для меня через cURL следующим образом:
curl --location --request POST "https://$url" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $token" \
--data "{\"someStringA\":\"$foo\",\"someStringB\":\"$bar\",\"app\":0}"
Спасибо заранее за любую помощь
ОБНОВЛЕНИЕ: извиняюсь, но проблема здесь не в UrlFetchApp. Моя проблема заключалась в том, что ответ, возвращаемый из api, был пустым объектом, и я пытался зарегистрировать его следующим образом: JSON.parse (response); что приводит к упомянутым ошибкам.