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

.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数据

http://www.xdnf.cn/news/5970.html

相关文章:

  • Centos7安装部署wordpress个人博客保姆级教程
  • iVX 研发基座:大型系统开发的协作与安全架构实践
  • 基于MATLAB的生物量数据拟合模型研究
  • 云蝠智能大模型呼叫优势:技术驱动全链路升级,重塑智能交互服务新体验
  • 前端性能优化3:深入分析 Web Worker 和 Service Worker
  • 【源码+文档+调试讲解】驾校报名小程序2
  • python打卡day24
  • ppy/osu构建
  • window 显示驱动开发-创建分配时指定段
  • 块设备代码分析
  • 测试集群的功能-执行wordcount程序
  • uniapp|实现获取手机摄像头权限,调用相机拍照实现人脸识别相似度对比,拍照保存至相册,多端兼容(APP/微信小程序)
  • 什么情况会导致JVM退出?
  • 【机器学习赋能的智能光子学器件系统研究与应用】
  • 界面组件DevExpress WPF中文教程:Grid - 如何自定义Band Header外观?
  • 《内网渗透测试:绕过最新防火墙策略》
  • ZYNQ实战:可编程差分晶振Si570的配置与应用指南
  • 人工智能基础知识笔记九:模型评估的指标
  • OpenAI官方指南,详细解释了何时使用哪种AI模型
  • amd架构主机构建arm架构kkfileview
  • vue3学习——侦听器
  • 从零开始掌握FreeRTOS——目录
  • Java后端快速生成验证码
  • Python查询ES错误ApiError(406, ‘Content-Type ...is not supported
  • vr视频制作攻略(VR视频制作基础知识)
  • 漏桶算法的实际应用案例:数据库批量写入流量控制
  • 基于智能家居项目 解析DHT11温湿度传感器
  • hadoop中创建MySQL新数据库数据表
  • 数据库数据清洗、预处理与质量监控、 数据质量的核心概念
  • 《Effective Python》第1章 Pythonic 思维总结——编写优雅、高效的 Python 代码