当前位置: 首页 > news >正文

.Net HttpClient 使用Json数据

HttpClient 使用Json数据

在这里插入图片描述

现代Web项目中,Json是最常用的数据格式。不论是前后端的交互中,还是纯前端项目中,都是如此。因此,.Net HttpClient 能不能更加方便、快捷的处理Json格式数据,也就至关重要了!

文末有视频效果


本文目录

  • HttpClient 使用Json数据
    • 初始化
    • 手动管理 Json 数据
    • 使用相关类库, 管理Json数据
    • 总结
    • 视频演示


手动处理Json数据,也是可以的,只不过需要服务端配合、比较繁杂,与使用框架提供的相关类库操作并没有本质区别,只不过使用框架更方便、稳定!

.Net HttpClient 提供了一流的Json数据支持:

  • System.Net.Http.Json 提供了序列化和反序列化 Json 数据功能
  • Microsoft.Extensions.Http 扩展库,提供了发送请求和接收响应时,对Json数据的扩展支持
  • Microsoft.Net.Http.Headers 提供请求或响应头的一些枚举及帮功能

初始化

#!import "./Ini.ipynb"

手动管理 Json 数据

借助 System.Net.Http.Json 或者 Newtonsoft.Json类库,手动管理(序列化、反序列化等)Json数据也是可以的。

  • 在请求中使用Json数据

在请求中使用json数据,基本就是指在请求体中使用json。url参数、路由参数、请求头中,很少使用json数据;当然,如果使用也是可以的,只要服务端配合就行!

#r "nuget:Newtonsoft.Json"{ //手动管理json//参数对象var postData = new {id = 1,name = "小品王"};//手动转为json字符串var textJsonData = Newtonsoft.Json.JsonConvert.SerializeObject(postData);//请求内容var requestContent = new StringContent(textJsonData, Encoding.UTF8, System.Net.Mime.MediaTypeNames.Application.Json);  //发送请求var response = await SharedClient.PostAsync("/api/AdvancedPost/JsonData", requestContent);//读取响应内容var content = await response.Content.ReadAsStringAsync();//输出响应内容Console.WriteLine(content);
}
  • 使用Json格式响应数据
#r "nuget:Newtonsoft.Json"{ //手动管理json//参数对象var postData = new {id = 2,name = "线程张"};//手动转为json字符串var textJsonData = Newtonsoft.Json.JsonConvert.SerializeObject(postData);//请求内容var requestContent = new StringContent(textJsonData, Encoding.UTF8, System.Net.Mime.MediaTypeNames.Application.Json);  //发送请求var response = await SharedClient.PostAsync("/api/AdvancedPost/JsonData", requestContent);//读取响应内容var content = await response.Content.ReadAsStringAsync();//手动反序列化Json为匿名对象(System.Text.Json不支持)var responseObj = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(content,postData);//输出响应内容Console.WriteLine(content);
}

使用相关类库, 管理Json数据

.Net框架,提供了丰富的 Json 类库,使得在HttpClient中进行jsonr操作非常方便、好用!

注意: 确保引入了 Microsoft.Extensions.Http 类库

  • 在请求中使用json数据
{ //引入 Microsoft.Extensions.Http//参数对象var postData = new {id = 2,name = "线程张"};//请求内容var requestContent = JsonContent.Create(postData);  //发送请求var response = await SharedClient.PostAsync("/api/AdvancedPost/JsonData", requestContent);//读取响应内容var content = await response.Content.ReadAsStringAsync();//手动反序列化Json为匿名对象(System.Text.Json不支持)var responseObj = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(content,postData);//输出响应内容Console.WriteLine(content);
}
  • 使用响应中的json数据
{ //引入 Microsoft.Extensions.Http//参数对象var postData = new {id = 2,name = "线程张"};//请求内容var requestContent = JsonContent.Create(postData);  //发送请求var response = await SharedClient.PostAsync("/api/AdvancedPost/JsonData", requestContent);//读取响应内容,并且转为对象var contentObject = await response.Content.ReadFromJsonAsync(postData.GetType());contentObject.Display();
}

总结

无论是手动处理 JSON 数据,还是借助框架类库进行管理,其核心原理并无本质区别,都是围绕接收和响应这种特定格式的数据展开的。

掌握"发送请求"和"接收响应"这两个核心操作后,处理JSON数据就会变得轻而易举。

当然了,还是推荐使用框架提供的类库,非常方便、快捷,且不容出错!毕竟,框架类库的质量还是非常高的!

视频演示

C# HttpClient 使用Json数据

相关文章:

  • 原生小程序+springboot+vue医院医患纠纷管理系统的设计与开发(程序+论文+讲解+安装+售后)
  • 桑德拉精神与开源链动2+1模式AI智能名片S2B2C商城小程序的协同价值研究
  • GPT-4.1和GPT-4.1-mini系列模型支持微调功能,助力企业级智能应用深度契合业务需求
  • 运用数组和矩阵对数据进行存取和运算——NumPy模块 之六
  • 面试中被问到谈谈你对threadlocal的理解
  • 是 OpenCV 的 CUDA 模块中用于在 GPU 上对图像或矩阵进行转置操作函数cv::cuda::transpose
  • 职坐标AIoT开发技能精讲培训
  • 通过POI实现对word基于书签的内容替换、删除、插入
  • 随言随语(十二):盖章
  • Hadoop的目录结构和组成
  • Springboot之类路径扫描
  • hadoop中创建MySQL新数据库数据表
  • mybatis中${}和#{}的区别
  • 【PmHub后端篇】PmHub中基于Redis加Lua脚本的计数器算法限流实现
  • 可视化图解算法38:重建二叉树
  • 在企业级智能体浪潮中,商业数据分析之王SAS或将王者归来
  • 数据挖掘入门-二手车交易价格预测
  • 鸿蒙北向应用开发: deveco5.0 创建开源鸿蒙项目
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(20):复习
  • 第五十七篇 Java接口设计之道:从咖啡机到智能家居的编程哲学
  • 习近平会见哥伦比亚总统佩特罗
  • 四部门:强化汛期农业防灾减灾,奋力夺取粮食和农业丰收
  • 俄官员说将适时宣布与乌克兰谈判代表
  • 持续8年仍难终了的纠纷:败诉方因拒执罪被立案,胜诉方银行账户遭冻结
  • 2025年上海科技节5月17日启动,56家重点实验室和大科学设施将向公众开放
  • 影子调查丨三名“淘金客”殒命雪峰山:千余废弃金矿洞的监管难题