http的请求体body的几种数据格式

这篇具有很好参考价值的文章主要介绍了http的请求体body的几种数据格式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

http的请求体body的几种数据格式:multipart/form-data;application/x-www-from-urlencoded;raw;binary

multipart/form-data

key - value 格式,主要用来上传文件,它会将表单的数据处理成一条消息,以标签为单元,用分隔符分开。当上传的字段是文件时,会有Content-Type来说明文件类型;content-disposition,用来说明字段的一些信息。

PS:使用时后端代码不能有@RequestBody,否则会出错

http的请求体body的几种数据格式,http,网络协议,网络

http的请求体body的几种数据格式,http,网络协议,网络

application/x-www-from-urlencoded

key-value 格式,比如 name=java&age=23

但不支持文件传输,与 form-data 区别在于http请求body格式不太一样,另外就是不可以设置content-type,而 form-data 是可以设置每个value的 content-type

PS:使用时后端代码不能有@RequestBody,否则会出错

http的请求体body的几种数据格式,http,网络协议,网络

http的请求体body的几种数据格式,http,网络协议,网络

raw

选择text,则请求头是: text/plain
选择javascript,则请求头是: application/javascript
选择json,则请求头是: application/json (如果想以json格式传参,就用raw+json就行了)
选择html,则请求头是: text/html
选择application/xml,则请求头是: application/xml
以常用的json为例:

http的请求体body的几种数据格式,http,网络协议,网络

tip:想要格式变好看就点美化(Beautify)

http的请求体body的几种数据格式,http,网络协议,网络

PS:使用时后端代码必须有@RequestBody,否则会出错

binary

相当于 Content-Type:application/octet-stream ,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。(一般用的不多)

http的请求体body的几种数据格式,http,网络协议,网络

http的请求体body的几种数据格式,http,网络协议,网络

multipart/form-data 与 x-www-form-urlencoded 区别

  • multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息。
  • x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。

使用选择

简单类型参数

用form-data与x-www-from-urlencoded都可以,直接表单填写key-value,字段名一致即可

@PostMapping(value = "/string")
    public String postman(String name, Integer age){
        String result = name + age;
        return result;
    }

复杂类型参数

选择用json格式

单一一个List

@PostMapping(value = "/list")
    public String postman2(@RequestBody List<Integer> list){
        String result = list.toString();
        return result;
    }

另外,选择了json后端就只能对应一个@RequestBody,也即是只能接收一个对象,当然这一个对象中可以包含多个子对象,所以不要想着如何同时传两个json对象过去。如果真的需要同时传两个单独对象,后端要使用@RequestPart,具体可看Postman同时用post发送多个对象+文件到Controller的实现方法

文件上传

使用org.springframework.web.multipart.MultipartFile接收文件

@RestController
@RequestMapping("/file")
public class AController {
    @PostMapping("/upload")
    public String uploadfile(MultipartFile multipartFile,String data) throws IOException {
        String s = multipartFile.getOriginalFilename() + data;
        return s;
    }
}

Params和Body的区别

get请求

  •     适合向服务器发送数据量较小的请求
  •     比如查询操作
  •     请求参数会放在url里,用?分割参数,多个参数用 & 链接
  •     params里的参数会被放在url里,所以get请求时参数添加在params里

post请求

  •     适合项数据量发送数据量较大的请求
  •     比如添加操作,上传文件等
  •     参数不会放在url里
  •     body里的参数不会放在url里,所以post请求时参数添加在body里

@RequestParam和@RequestBody的区别

  • 若后端使用 @RequestParam 来接收前端传过来的参数,Content-Type 要设置为 application/x-www-form-urlencoded,并且需要对 data 里面的参数使用 qs.stringify 来进行转换(qs库包含在axios中),转换之后后端才能正常获取。
  • 若后端使用 @RequestBody 来接收前端传过来的参数,Content-Type 要设置为 application/json。

postman中 form-data、x-www-form-urlencoded、raw、binary的区别_wangjun5159的博客-CSDN博客

Postman中几个body请求格式区别及使用说明_postman的body_有时候我也会的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-719607.html

到了这里,关于http的请求体body的几种数据格式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • tp6框架中Http类 请求的header、body参数传参 及post、file格式

    引入Http类: 在需要使用的地方引入Http类: use thinkfacadeHttp; GET请求示例: $response = Http::get(\\\'https://example.com/api/resource\\\');  设置Header参数: $headers = [ \\\'Authorization\\\' = \\\'Bearer YourAccessToken\\\', \\\'Content-Type\\\' = \\\'application/json\\\', ]; $response = Http::header($headers)-get(\\\'https://example.com/api/resource\\\'); POST请

    2024年01月19日
    浏览(48)
  • java实现调用http请求的几种常见方式

    ------ Oracle中文开发者社区 ------ 如果你想要学习编程,关注本博客,持续获得技术支持,持续获得技术咨询 java开发·企业官方账号 Oracle中国官方账号 Java中国管理部 全网粉丝30万+ 华为云享专家 阿里专家博主 CSDN内容合伙人 CSDN原力计划作者 51CTO专家博主 CSDN博客V账号 毕业于四川

    2024年02月04日
    浏览(54)
  • post请求设置表单form-data格式的几种方式

    我用默认的post方法发送数据的时候发现后端获取不到数据,然而在network中看到参数是的确传出去的了。而且用postman测试的时候也是可以的,比较了下两个的不同发现是postman使用的是form-data格式,于是用form-data格式再次请求,发现OJBK 这两种格式都是无法使用的:   方法一:

    2024年02月11日
    浏览(66)
  • Java实现HTTP请求的几种方式-HttpURLConnection(一)

    在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信、天气等)。 准备两个项目: 项目A: 服务提供者 项目B:服务消费者 在项目A中

    2024年02月16日
    浏览(43)
  • hutool Http 工具发送POST请求的几种方式

            目录 依赖 🍊Maven 🍐Gradle 实践 hutool源码 hutool调用实践 其它自定义项         本质上,HttpUtil中的get和post工具方法都是HttpRequest对象的封装,因此如果想更加灵活操作Http请求,可以使用HttpRequest。今天咱们就列举一下hutool工具中常用的几种发送post请求的方式。

    2024年02月08日
    浏览(54)
  • Java实现HTTP请求的几种方式-CloseableHttpClient(三)

    CloseableHttpClient是在HttpClient的基础上修改更新而来的,这里还涉及到请求头token的设置(请求验证),利用fastjson转换请求或返回结果字符串为json格式,当然上面两种方式也是可以设置请求头token、json的,这里只在下面说明。 基于第一章的测试接口,建立以下程序 创建客户端

    2023年04月20日
    浏览(45)
  • hutool Http 工具发送POST请求的几种方式。

    Hutool是一个Java工具库,提供了丰富的功能模块,包括HTTP请求发送。以下是使用Hutool发送POST请求的几种方式: 使用HttpUtil.post方法: 使用HttpUtil.post方法可以发送简单的POST请求,示例如下: 使用HttpUtil.createPost方法: 使用HttpUtil.createPost方法可以创建一个HttpPost对象,然后设置

    2024年02月13日
    浏览(35)
  • Web:前端常用的几种Http请求GET和POST样例

    1、简述 在Web开发过程中,少不了发起Http请求服务端的接口数据,在不同的框架中使用了不同的Http请求方式,常用的请求有fetch、 ajax、 axios、XMLHttpRequest、request,以下样例仅供参考。 2、Fetch Fetch API 是一种 JavaScript API,是一种基于 Promise 的现代API,用于在网络中发送和接收

    2024年02月07日
    浏览(44)
  • Qt 使用HTTP请求网络API并接收返回的JSON格式的数据

    引入网络模块: mainwindow.h: mainwindow.cpp:

    2024年02月13日
    浏览(48)
  • java发送http请求的几种方式,调用第三方接口的方法:HttpUtil、HttpURLConnection等

    参考:https://blog.csdn.net/yubin1285570923/article/details/126225347 put请求 post带请求头 get、delete类似… 使用JDK原生提供的net,无需其他jar包,代码如下: 需要用到commons-httpclient-3.1.jar,maven依赖如下: 看一下我实际应用的例子 需要用到httpclient-4.5.6.jar,maven依赖如下: RestTemplate 是由

    2024年01月18日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包