Конвертировать тело письма в JSON объект в функции azure для моего приложения logi c - PullRequest
1 голос
/ 23 апреля 2020

У меня есть приложение logi c, чей триггер запускается при получении писем. он передает мое электронное тело в функцию azure. Затем моя функция берет содержимое письма и превращает его в объект json для использования остальной частью моего приложения logi c. enter image description here

enter image description here

в настоящее время, если я жестко закодирую выход для объекта JSON в функции azure, все шаги завершены в порядке. но при попытке прочитать данные тела письма и вернуть его как объект json, он выдает ошибку 500 с ошибкой

ниже приведен код моей функции

public static async Task<HttpResponseMessage> Run(HttpRequest req, ILogger log)
{

log.LogInformation("C# HTTP trigger function processed a request.");

string Name = req.Query["Name"];
string PhoneNumber = req.Query["PhoneNumber"];
string SSN = req.Query["SSN"];
string Email = req.Query["Email"];

string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
Name = Name ?? data?.Name;
PhoneNumber = PhoneNumber ?? data?.PhoneNumber;
SSN = SSN ?? data?.SSN;
Email = Email ?? data?.Email;

var myObj = new {name = Name, phone = PhoneNumber, ssn = SSN, email = Email};
var jsonToReturn = JsonConvert.SerializeObject(myObj);

return new HttpResponseMessage(HttpStatusCode.OK) {
    Content = new StringContent(jsonToReturn, Encoding.UTF8, "application/json")
};

моего образца письма тело

  Name: LXXXXX ZXXXXXXXX
  PhoneNumber: 5XXXXXXXXX
  SSN: 1XXX
  Email: test@test.com

1 Ответ

0 голосов
/ 23 апреля 2020

Проблема, вызванная форматом тела триггера «Когда пришло новое электронное письмо», мы можем увидеть, как показано тело:

enter image description here

Это не json данные, поэтому, когда вы отправляете их в свою функцию, они не будут работать.

Поэтому, если вы хотите выполнить свою функцию успешно, нам нужно предоставить правильно сформированные данные для твоя функция. Если вы можете выбрать формат электронного письма, измените его на следующий формат:

"Name": "LXXXXX ZXXXXXXXX",
"PhoneNumber": "5XXXXXXXXX",
"SSN": "1XXX",
"Email": "test@test.com"

Затем используйте Html для отправки текста , чтобы удалить тег html в тело от триггера электронной почты. enter image description here

После этого добавьте { и } в начале и конце данных. И проанализируйте данные json.

enter image description here

Теперь вы можете использовать тело из parse json в качестве ввода вашей функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...