框架 4.5 中的 c# ReadAsJsonAsync

标签 c# json web-services

我习惯在Net Core工作。当我调用 RestApi 时,我会像这样读取检索到的数据。

  HttpResponseMessage response = client.PostAsJsonAsync(url, param).Result;
    value = response.Content.ReadAsJsonAsync<R>().Result;

现在,我回到了 Framework 4.5 中,我需要替换

ReadAsJsonAsync

替换它的最佳方法是什么?

谢谢

最佳答案

您可以只安装 Newtonsoft.Json NuGet自己封装并实现ReadAsJsonAsync扩展方法。这很简单:

public static class HttpClientExtensions
{
    public static async Task<T> ReadAsJsonAsync<T>(this HttpContent content)
    {
        var dataAsString = await content.ReadAsStringAsync();
        return Newtonsoft.Json.JsonConvert.DeserializeObject<T>(dataAsString);
    }
}

顺便说一句,你应该等待异步方法而不是阻塞在 Result 属性上:

value = await response.Content.ReadAsJsonAsync<R>();

关于框架 4.5 中的 c# ReadAsJsonAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53764090/

相关文章:

html - 背景图像水平重复一行

xml - SOAPHandler 中的 saveChanges 后 SOAP 消息发生更改

web-services - 在 REST 中处理添加/删除多对多关系的正确方法是什么?

c# - Quartz .net 作业未执行

c# - 研究课题 list

c# - .NET 系统范围的 EventWaitHandle 名称允许的字符

c# - 为什么我的 C# json 反序列化失败?

c# - 使用 C# 和 .NET 从集会下载附件

java - 使用jquery和ajax显示来自mysql的数据

javascript - 在 JSON 数组中按属性查找对象