Похоже, вы пытаетесь отправить POST
запрос на Azure Function V2
.См. Фрагмент кода ниже.
Класс пользовательских запросов:
public class Users
{
public string Name { get; set; }
public string Email { get; set; }
}
Функция Azure V2:
В этом примереЯ беру два параметра, используя пользовательский класс, и вернул это свойство двух классов в качестве ответа.
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
//Read Request Body
var content = await new StreamReader(req.Body).ReadToEndAsync();
//Extract Request Body and Parse To Class
Users objUsers = JsonConvert.DeserializeObject<Users>(content);
//As we have to return IAction Type So converting to IAction Class Using OkObjectResult We Even Can Use OkResult
var result = new OkObjectResult(objUsers);
return (IActionResult)result;
}
Пример запроса:
{
"Name": "Kiron" ,
"Email": "kiron@email.com"
}
Тест PostMan:
Примечание: Вы ищете await req.Content.ReadAsAsync<>();
, это действительно необходимо для отправки запроса POST
от вашей функции.И читать с этого сервера ответы.Но помните, что req.Content
не поддерживается как запрос на чтение в Azure Function V2
, который показал Function V1
пример здесь
Другой пример:
См. Фрагмент кода ниже:
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
//Read Request Body
var content = await new StreamReader(req.Body).ReadToEndAsync();
//Extract Request Body and Parse To Class
Users objUsers = JsonConvert.DeserializeObject<Users>(content);
//Post Reuqest to another API
HttpClient client = new HttpClient();
var json = JsonConvert.SerializeObject(objUsers);
//Parsing json to post request content
var stringContent = new StringContent(json, UnicodeEncoding.UTF8, "application/json");
//Posting data to remote API
HttpResponseMessage responseFromApi = await client.PostAsync("YourRequstURL", stringContent);
//Variable for next use to bind remote API response
var remoteApiResponse = "";
if (responseFromApi.IsSuccessStatusCode)
{
remoteApiResponse = responseFromApi.Content.ReadAsStringAsync().Result; // According to your sample, When you read from server response
}
//As we have to return IAction Type So converting to IAction Class Using OkObjectResult We Even Can Use OkResult
var result = new OkObjectResult(remoteApiResponse);
return (IActionResult)result;
}
Надеюсь, вы понимаете, если у вас все еще есть какие-либо вопросы, не стесняйтесь поделиться.Спасибо и счастливого кодирования!