Java——》Content-Type详解

2023-05-16

Java——》Content-Type详解

  • 一、MediaType
  • 二、Content-Type格式
    • 1、类型格式
    • 2、常见的媒体格式类型
    • 3、Content-Type 和 Accept 区别
  • 三、Content-Type用法
    • 1.headers
    • 2.consumes
    • 3.produces
  • 四、参考链接
    • 1.HTTP中的Content-Type和Accept
    • 2.@RequestMapping的参数和用法

一、MediaType

MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型。
在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。

二、Content-Type格式

1、类型格式

type/subtype(;parameter)? type

参数说明
type主类型,任意的字符串,如text,如果是*号代表所有
subtype子类型,任意的字符串,如html,如果是*号代表所有;
parameter可选,一些参数,如Accept请求头的q参数, Content-Type的 charset参数

2、常见的媒体格式类型

类型说明
text/htmlHTML格式
ext/plain纯文本格式
text/xmlXML格式
image/gifgif图片格式
image/jpegjpg图片格式
image/pngpng图片格式
application/xhtml+xmlXHTML格式
application/xmlXML数据格式
application/atom+xmlAtom XML聚合格式
application/jsonJSON数据格式
application/pdfpdf格式
application/mswordWord文档格式
application/octet-stream二进制流数据(如常见的文件下载)
application/x-www-form-urlencodedform表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
multipart/form-data在表单中进行文件上传时

3、Content-Type 和 Accept 区别

Http报头:通用报头,请求报头,响应报头和实体报头。

请求方的http报头结构:通用报头,请求报头,实体报头

响应方的http报头结构:通用报头,响应报头,实体报头

参考链接:HTTP中的Content-Type和Accept

  • 区别:
AcceptContent-Type
请求头实体头
发送端(客户端)希望接受的数据类型发送端(客户端|服务器)发送的实体数据的数据类型
  • 示例:

Accept:text/xml; ——》代表客户端希望接受的数据类型是xml
Content-Type:text/html; ——》代表发送端发送的数据格式是html

三、Content-Type用法

1.headers

指定request中必须包含某些指定的header值,才能让该方法处理请求
参考链接:@RequestMapping的参数和用法

//Accept=application/json :表示客户端希望接受的数据类型是json
@RequestMapping(value = "/test/ContentType", headers = "Accept=application/json")  
public void test1(HttpServletResponse response) throws IOException {  
    //表示响应的内容区数据的媒体类型为json格式,且编码为utf-8(客户端应该以utf-8解码)  
    response.setContentType("application/json;charset=utf-8");  
    //写出响应体内容  
    String jsonData = "{\"username\":\"zhang\", \"password\":\"123\"}";  
    response.getWriter().write(jsonData);  
}


//content-type =application/json :表示客户端发送的数据格式是json
@RequestMapping(value = "/test/ContentType", headers = {"content-type = application/json"})  
public void test2(@RequestBody Pet pet) throws IOException {  
    // TODO
}


2.consumes

//仅处理request Content-Type为“application/json”类型的请求
@RequestMapping(value = "/test/produces", method = RequestMethod.POST, consumes="application/json")  
public void test(@RequestBody Pet pet, Model model) {      
    // TODO
}

//处理request Content-Type,定义的2种类型的请求
@RequestMapping(consumes = {"application/json","application/x-www-form-urlencoded"})
public void test2(@RequestBody Pet pet, Model model) {      
    // TODO
}

//处理request Content-Type中,除了以下2种类型的请求
@RequestMapping(consumes = {"!application/json","!application/x-www-form-urlencoded"})
public void test3(@RequestBody Pet pet, Model model) {      
    // TODO
}

3.produces

//返回json数据 && 字符编码为utf-8
@RequestMapping(value = "/test/consumes", method = RequestMethod.POST, produces="application/json;charset=utf-8")    
@ResponseBody    
public Pet test3(@PathVariable String petId, Model model) {       
    // TODO
} 

四、参考链接

1.HTTP中的Content-Type和Accept

2.@RequestMapping的参数和用法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java——》Content-Type详解 的相关文章

随机推荐

  • Tensorflow-gpu保姆级安装教程(Win11, Anaconda3,Python3.9)

    Tensorflow gpu 保姆级安装教程 xff08 Win11 Anaconda3 xff0c Python3 9 xff09 前言Tensorflow gpu版本安装的准备工作 一 查看电脑的显卡 xff1a 二 Anaconda的
  • 程序设计思维与实践 Week15 实验(1/2/智能班)

    A Q 老师的记录册 Problem Statement Q 老师有 N 个学生 xff0c 每个学生都有各自独立的编号 xff0c 且编号范围在 1 N 之间 这一天 xff0c 所有学生都在不同的时间进入教室 Q 老师记录了当编号为 i
  • 环境部署(物理手工部署):

    环境搭建的思路 1 找开发了解下项目使用的一些组件 xff0c 比如说jdk 数据库 缓存 中间件 2 搭建这些依赖组件的环境 xff1a jdk mysql tomcat 3 将项目需要用到的数据库sql导入到数据库里 4 把项目包传到t
  • 使用Ansible部署一次BIND节点

    如何使用Asible提高工作效率 工作场景描述实现方式实现思想playbook内容 结语 工作场景描述 大部分的运维小哥在实际的应用场景中经常会有一些重复的动作是需要耗时费力的去完成 xff0c 比如今天交付一个环境 xff0c 明天一个需
  • Appium: Windows系统桌面应用自动化测试(一)

    一 方案调研 1 windows桌面应用自动化测试方案 xff08 1 xff09 WinAppDriver是微软开发的自动化测试工具 xff0c 而windows是微软开发的 xff0c 兼容性应该极好 xff08 2 xff09 Win
  • Linux网络拷贝

    需求场景 xff1a Linux突然故障 xff0c 导致无法进入图形化界面 但是文件又太大将近20GB xff0c 不管是smb xff0c 还是U盘都无法传输 xff0c 这时候我突然想到了Linux网络拷贝 xff0c 哈哈哈 Lin
  • DFS搜索算法详解

    深度优先搜索 一条道走到黑 DFS其实叫深度优先搜索算法 xff0c 起始它只是一种搜索的方法思路 xff0c 并没有固定的算法格式 让我们通过一个社交图的例子来看 我们拿到一个社交关系无向图 xff1a 通过无向图可以得到邻接矩阵 用1表
  • BFS广度优先遍历详解

    广度优先遍历 一石激起千层浪 和深度优先遍历一样 xff0c 广度优先遍历也是一种常用的搜索算法 xff0c 它并没有固定的代码格式 xff0c 只是一种遍历方式的思想 广度优先遍历一般用于求最短路径问题 xff0c 我们用一个社交图来举例
  • 刚接手的新产品怎么快速展开测试

    敏捷测试背景下刚接手的新产品怎么快速展开测试 在敏捷测试下我们用最小的成本做到刚刚好的测试 A 业务熟悉 1 从PC端先了解这个产品怎么使用 xff0c 梳理出产品从前端入手的测试点 2 熟悉完前端会产生一些对业务上的疑问 xff0c 找熟
  • java VisualVM工具连接远程服务和实践

    相信大家在性能测试过程中或者生产过程中 xff0c 会发现应用程序存在这样或者那样的性能问题 xff0c 比如内存泄漏 CPU使用率过高 服务吞吐量不符合预期 接口响应忽然变慢等等 xff0c 那么如何分析出程序到底哪里出了问题呢 xff0
  • C++两个类头文件互相包含

    在构造自己的类时 xff0c 有可能会碰到两个类之间的相互引用问题 xff0c 例如 xff1a 定义了类A类B xff0c A中使用了B定义的类型 xff0c B中也使用了A定义的类型 class A int i B b class B
  • 性能测试入门

    说起性能测试 xff0c 很多人并不陌生 xff0c 接下来就跟着小编一起看看我们做性能测试要考虑到哪些方面和有哪些常用的工具吧 1 架构模型了解 1 1 为什么要了解被测服务的架构模型 xff1f 服务的架构模型基本表示出两种重要信息 第
  • #if/#endif的用法

    话不多说请看代码 96 include lt stdio h gt include lt stdlib h gt int main if 0 int a 61 0 int b 61 0 int min 61 0 int i 61 0 int
  • 用递归的方式计算n的阶乘

    递归方法计算一个数的阶乘 include lt stdio h gt include lt stdlib h gt int jiecheng int f int n 61 0 if f lt 0 printf 34 您的输入非法 34 el
  • 【MATLAB】用MATLAB编写阶乘函数,并调用该函数来生成一个1!,...,10!的阶乘表。

    function p 61 factorial p 61 1 for a 61 1 10 for i 61 1 a p 61 p i end p p 61 1 end end
  • 【MATLAB】在MATLAB中编写函数判断一个数是不是素数

    是素数返回1 xff0c 不是素数返回0 实现方式是用要求的数从2到它本身减一依次相除如果都不能整除那么就是素数 xff0c 否则不是 function p 61 panduanpf a for i 61 2 a 1 if 0 61 61
  • 【c】在C语言中使用顺序表了实现一个通讯录,实现对联系人信息的增删改查(主要用到动态开辟内存,文件读写,结构体指针)

    头文件 pragma once enum menu EXIT ADD DEL MODIFY SEARCH SORT EMPTY SHOW define NAME SIZE 30 define SEX SIZE 5 define ADDR S
  • 【每日一题】给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

    输入 34 babad 34 输出 34 bab 34 注意 34 aba 34 也是一个有效答案 https leetcode cn com problems longest palindromic substring 思路 xff1a
  • vm安装centos7蓝屏

    vm安装centos7蓝屏 最近有同学购买了最新款英特尔11代的笔记本 xff0c 使用vm安装centos7系统 xff0c 一启动虚拟机就系统蓝屏 xff0c 今天给后来的同学们找一下坑吧 系统 xff1a 最新版win10 软件 xf
  • Java——》Content-Type详解

    Java Content Type详解 一 MediaType二 Content Type格式1 类型格式2 常见的媒体格式类型3 Content Type 和 Accept 区别 三 Content Type用法1 headers2 co