Как отправить POST в функцию Azure (HTTP-триггер) через Postman?C#

Место общения программистов C#
Anonymous
Как отправить POST в функцию Azure (HTTP-триггер) через Postman?

Сообщение Anonymous »

Я реализовал функцию Azure, используя HTTP Trigger, интегрированную с SendGrid. Предполагаемое действие — передать данные в функцию Azure через HTTP и отправить это содержимое по электронной почте в указанный почтовый ящик. Моя функция Azure успешно протестирована на портале Azure. Другими словами, когда я отправляю это, в папку «Входящие» приходит ожидаемое письмо:
Изображение

Однако, когда я пытаюсь отправить POST в функцию Azure через Postman, я получаю статус 400 «Неверный запрос — неверное имя хоста». Я пробовал использовать свои функциональные клавиши, передавая ключ в качестве параметра в моем URI в Postman или, альтернативно, в заголовке как «x-functions-key». Всегда статус 400. Я получаю URL-адрес для POST с портала Azure, нажав «Получить URL-адрес функции». В качестве альтернативы я также попробовал опубликовать ссылку на URL-адрес, соответствующий:
[img]https://i.sstatic.net /bcr31.png[/img]

Вот мои привязки функций (function.json):

Код: Выделить всё

{
"bindings": [
{
"authLevel": "function",
"name": "req",
"type": "httpTrigger",
"direction": "in",
"methods": [
"get",
"post"
]
},
{
"type": "sendGrid",
"name": "$return",
"direction": "out",
"apiKey": "SendGridKey",
"from": "email@email.com",
"to": "email@email.com"
}
]
}
Вот логика функции (run.csx):

Код: Выделить всё

#r "Newtonsoft.Json"
#r "SendGrid"

using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using SendGrid.Helpers.Mail;

public static SendGridMessage Run(Email req, ILogger log)
{
Guid Id = Guid.NewGuid();

log.LogInformation($"Email generated from websitename via Azure Function. Email ID: {Id}");

SendGridMessage message = new SendGridMessage()
{
Subject = $"From wesbitename. Subj: {req.Subject.Substring(0, 20)}"
};

message.AddContent("text/plain", $"Subject: {req.Subject} \n \n" + $"{req.Content} \n \n" + $"From: {req.CustomerName}, {req.CustomerEmail}");
return message;
}

public class Email
{
public string EmailId { get; set; }
public string Subject { get; set; }
public string Content { get; set; }
public string CustomerName { get; set; }
public string CustomerEmail { get; set; }
}
Как отправить POST в функцию Azure через HTTP? Как устранить ошибку 400? Спасибо!
Для получения дополнительной информации я также обращаюсь за помощью через Twitter: https://twitter.com/devbogoodski/status/ 1410702335303581697

Подробнее здесь: https://stackoverflow.com/questions/682 ... ia-postman

Вернуться в «C#»