首页 > 解决方案 > 'await response.Content.ReadAsAsync 的 .net5 替代品是什么()'

问题描述

https://github.com/sample-by-jsakamoto/Blazor-UseGoogleReCAPTCHA 是 Blazor 的 reCaptcha V2 的示例实现。它包含一个名为 SampleApi 的类,该类又包含以下无法编译的行: var verificationResponse = await response.Content.ReadAsAsync<ReCAPTCHAVerificationResponse>();

我在某个地方找到了使用建议: var verificationResponse = await JsonSerializer.DeserializeAsync<ReCAPTCHAVerificationResponse>(await response.Content.ReadAsStreamAsync()); 但它没有用。它编译但没有提供可用的验证响应。

我通过安装 Microsoft.AspNet.WebApi.Client 让它工作,但它已被弃用。似乎必须有更好的方法。

标签: c#asp.net-corerecaptchablazor-server-side

解决方案


如果您使用的是 Newtonsoft.Json,那么您正在寻找类似的东西

var content = await response.Content.ReadAsStreamAsync();
var response = JsonConvert.DeserializeObject<ReCAPTCHAVerificationResponse>(content);

如果您使用的是 System.Text.Json (微软的风格,他们在 Newtonsoft.Json 上推荐大部分)

var response = response.Content.ReadAsAsync<ReCAPTCHAVerificationResponse>();

但是,这不是 Blazor 或 .NET 5 独有的。


推荐阅读