чтение содержимого запроса - ReadAsStringAsync () - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь прочитать содержание запроса следующим образом:

var translation = await req.Content.ReadAsStringAsync();

Но, получив это исключение:

enter image description here

Код серьезности Описание Состояние подавления строки файла проекта Ошибка CS1061 «HttpRequest» не содержит определения «Содержимое» и нет доступного метода расширения «Контент», принимающего первый может быть найден аргумент типа 'HttpRequest' (вы не используете директива или ссылка на сборку?)

Вот библиотеки, которые я использую:

enter image description here

Что я делаю не так? Как я могу прочитать основную часть контента?

Вот код окружения:

    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "post", Route = "OnTranslateSingleHttpTriggered")] HttpRequest req,
        ILogger log)
    {
        var translation = await req.Content.ReadAsStringAsync();
        //do work
    }

1 Ответ

0 голосов
/ 15 января 2019

Как упомянул @Garr, Content является свойством HttpRequestMessage. В функциях v2, предназначенных для .NET Core 2, мы обычно используем HttpRequest и читаем содержимое, как показано ниже.

string requestBody = await new StreamReader(req.Body).ReadToEndAsync();

Обновление

Runtime 2.0.12265 была доступна для пользователей VS, не стесняйтесь использовать .NET Core 2.2.


Также обратите внимание, что .NET Core 2.2 поддерживается начиная с runtime v2.0.12265 , но обновление во время выполнения не было развернуто повсеместно, то есть мы все еще используем старое обновление локально. Поэтому верните пакет Microsoft.AspNetCore.Mvc в 2.1.0, иначе мы можем получить ошибку. (На Microsoft.AspNetCore.Http ссылается Microsoft.NET.Sdk.Functions, следовательно, нет необходимости устанавливать снова)

Файл вашего проекта (щелкните правой кнопкой мыши по проекту, Edit <FunctionProjectName>.csproj) должен выглядеть следующим образом

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.24" />
    <PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
    <PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>
...