l--*_*''' 4 c# asp.net-mvc azure .net-core azure-functions
我尝试像这样读取请求的内容:
var translation = await req.Content.ReadAsStringAsync();
但得到这个例外:
严重性代码描述项目文件行抑制状态错误 CS1061“HttpRequest”不包含“Content”的定义,并且找不到接受“HttpRequest”类型的第一个参数的可访问扩展方法“Content”(您是否缺少 using 指令或装配参考?)
以下是我正在使用的库:
我究竟做错了什么?如何阅读内容正文?
这是周围的代码:
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "OnTranslateSingleHttpTriggered")] HttpRequest req,
ILogger log)
{
var translation = await req.Content.ReadAsStringAsync();
//do work
}
Run Code Online (Sandbox Code Playgroud)
Jer*_*Liu 10
正如@Garr 提到的,Content 是 HttpRequestMessage 的一个属性。在针对.NET Core 2的v2 Functions中,我们通常使用HttpRequest并读取如下内容。
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
Run Code Online (Sandbox Code Playgroud)
更新
Runtime 2.0.12265已经提供给VS用户,请放心使用.NET Core 2.2。
另请注意,自运行时 v2.0.12265起就支持 .NET Core 2.2 ,但运行时更新尚未在所有地方推出,即我们仍然在本地使用旧版本。因此,将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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8980 次 |
最近记录: |