Обработка (чтение) файлов в кодировке Base64 в приложении логики и отправка в конечную точку - PullRequest
0 голосов
/ 05 марта 2019

У меня есть приложение логики, которое получает содержимое из SharePoint (.xlsx) и отправляет тело в конечную точку для обработки. теперь содержимое, которое я вижу, является файлом в кодировке base64, и я хотел опубликовать эти данные как есть.

когда я пытаюсь опубликовать его с помощью почтальона, он успешно принимается, но когда он публикуется из приложения логики, я получаю

BadRequest. Http-запрос не выполнен: содержимое не является допустимым JSON.

но я вижу, что тело, которое должно было быть отправлено, относится к типу, который является действительным Json

{
  "$content-type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
  "$content": "AA....VeryLong...B1241BACDFA=="
}

также попробовал это выражение

decodeBase64(triggerBody()?[body('getFile')])

но я получаю другую ошибку

InvalidTemplate. Невозможно обработать выражения языка шаблона в входных данных действия «HTTP» в строке «1» и столбце «2565»: «Выражение языка шаблона« decodeBase64 (triggerBody ()? [Body ('getFile')]) »не может быть оценено, поскольку свойство «{ "$ content-type": "application / vnd.openxmlformats-officedocument.spreadsheetml.sheet", "$ content": "UEsDBBQABgAIAAAAIQDuooLHjAEAAJkGAAATAAgCW0Nvb ...

То, чего я хочу достичь, - это просто, я хочу опубликовать в своей конечной точке Json как есть или содержимое строки base64Encoded.

1 Ответ

0 голосов
/ 06 марта 2019

Если вы расшифруете контент с помощью base64, вы обнаружите, что он искажен. Это потому, что содержимое в формате ooxml затем кодируется с помощью base64. И в приложении логики вы не можете декодировать ooxml.

Первое решение: вы можете использовать функцию Azure, чтобы написать метод для чтения документа, а затем вернуть содержимое. Затем в приложении логики вызовите функцию для получения контента.

Второе решение, измените ваш файл на файл, который можно прочитать напрямую (например, файл .txt), таким образом я попытался, и вы можете разобрать его, Json.

enter image description here

...