网站首页 > 文章精选 正文
说明:由于头条不支持上传文件,也不直接支持Markdown等,特别是不支持实时效果。上面几篇都是先转为html页面,再粘贴到头条,效果很差。所以这篇尝试v录屏为"动图"的方式来展示效果,可能消耗流量比较大。试试看效果怎么样!
- 初始化及全局设置
- 使用URL传参
参数放在Url里,形如:http://www.baidu.com?name=zhangsan&age=18, GET、Head请求用的比较多。优点是简单、方便,能被浏览器缓存;缺点是参数长度等限制较多,数据暴露url中,可能比较长。
- 使用路由传参
- 使用请求头
把请求数据放入请求头中,传给后端。当然也可以传多个数据。不过,请求头中传数据限制比较多,一般只传简单的数据:比如jwt token 。
- 使用请求体
把数据放在请求体中,发送到服务端。可以是简单的字符串,也可以是二进制数据(上传文件)、form表单项、编码过的form表单项、json、流式数据等形式,甚至是这个类型的组合。
说下个人的几点理解:
- 不管哪种请求体数据,都是放在请求体中,以二进制形式通过网络发往服务器,由服务器接收使用。客户端发送请求数据需要与服务端接收相配合;
- 客户端通过Content-Typey请求头设置,告诉服务端请求发送的是哪种类型的数据;服务端根据Content-Type来识别、解析请求数据。常见的类型有:multipart/form-data、application/x-www-form-urlencoded、application/json、text/plain等;
- ASP.NET Core中,默认为简单类型(如 int、string)的参数是从 URL 中获取的,也就是使用 [FromUri];复杂类型默认通过 [FromBody] 来绑定,这意味着需要发送 JSON 或 XML 格式的数据。asp.net 框架对json、xml格式数据进行了特殊处理,支持参数绑定等,可以使用[FromBody]特性,将请求数据绑定到对应的模型上;Form表单数据,可以使用[FromForm]特性,将请求数据绑定到对应的模型上;但普通的文本类型等不支持绑定等功能,需要从请求体中获取原始数据,自行处理。
- 一次可发送多种格式数据,由统一的分隔符分隔。服务端可以从请求头[Content-Type: multipart/mixed; boundary="d2e38916-df08-4fec-a40e-3e5179736f32"]拿到分隔符,然后根据分隔符将数据拆分出来。
HttpClient 中,请求体也分为这几种(常见的)类型:
1. MultipartFormDataContent
2. FormUrlEncodedContent
3. JsonContent
4. StringContent
5. ByteArrayContent
6. StreamContent
7. MultipartContent
普通请求体:
多段请求体:
- MultipartFormDataContent :Form表单
普通 Form表单,可以 MultipartFormDataContent 进行提交
- FormUrlEncodedContent :编码过的Form表单
经过URL编码的Form表单,可以 FormUrlEncodedContent 进行提交
- StringContent 普通文本(也包括很多格式,甚至是自定义格式。要和服务器配合)
- ByteArrayContent : 二进制数据
- StreamContent 流式数据
- JsonContent 最常用的数据格式
- MultipartContent 多段数据:组合多种方式,一次携带多种请求数据
- 文件上传 总结
猜你喜欢
- 2025-06-15 产品经理必备知识——API接口(产品经理接口设计)
- 2025-06-15 不得不知的网络安全知识(网络 安全知识)
- 2025-06-15 西门子smart200 PLC数据互传Get/Put指令应用
- 2025-06-15 四步改造一套完美的 Controller 代码层,帅呆了!
- 2025-06-15 2020最新整理JAVA面试题附答案,包含19个模块共208道面试题
- 2025-06-15 超详细的网络抓包神器 tcpdump 使用指南
- 2025-06-15 「总结」用selenium工具做软件自动化测试的面试题及答案,码住
- 2025-06-15 雅虎“YSlow - 23 条规则”详尽阐释
- 2025-06-15 C++网络编程神器libcurl极简指南:5分钟上手HTTP请求!
- 2025-06-15 Potplayer播放器设置固定播放大小
- 最近发表
-
- 面试中常被问到的Hash表,你了解吗
- JAVA面试考点:一文搞懂一致性Hash的原理和实现
- 一次性搞清楚equals和hashCode(hashcode() 与equals()区别,简单说明)
- HashMap.Key的故事:Key为什么出现Hash碰撞及冲突呢?
- hash冲突的几种解决方案对比(hash冲突的解决方式)
- 游戏王LN 无头骑士(无头骑士cv)
- Linux ln、unlink命令用法(linux link命令详解)
- n和l分不清矫正发音方法,这三步就够了
- golang引用私有gitlab项目代码(golang引入当前包下的文件)
- Instamic:录音领域中的 GoPro,让你想录就录,随心所欲
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)