c# - '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 让它工作,但它已被弃用。似乎必须有更好的方法。
解决方案
如果您使用的是 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 独有的。
推荐阅读
- excel - 有没有人可以告诉我我错过了这些代码?
- css - 表单布局在移动设备上不灵活
- android - 如何使用 sparkjava 框架 webserver 和 Android 设备发送大文件?
- javascript - 为什么我在使用 Vue/Nuxt 时会遇到 fontawesome 星星的间距问题?
- c++ - 为什么使用implicit_cast
(int) 而不是 static_cast (整数)? - python - Collatz 在 Python 中的假设检验
- bash - 分组命令的意外标记附近的bash语法错误
- mysql - 如何将 MySQL Workbench 连接到在 VPC 中运行的 Amazon RDS
- sql - 在 Hive SQL 中检索多个链表
- stripe-payments - 带有多个 webhook 的条带