Http之Content-type

content-type 也叫MIME类型,是用来描述请求中媒体类型消息,定义于消息头中。

常见的媒体类型有如下:

text/html:html格式

text/xml:xml格式

text/plain:纯文本格式

image/gif:gif:图片格式

image/jpeg:jpg:图片格式

image/png:png:图片格式

application/xml:xml数据格式

application/json: json数据格式

application/pdf: pdf格式

application/msword: word文档格式

application/octet-stream: 二进制流数据

application/x-www-form-urlencoded:key-value形式

multipart/form-data 文件上传

以上为为常见的content-type的类型,上面几种类型中又以application/x-www-form-urlencoded,application-json,multipart/form-data三种最为常见,下面就要具体讲一下这三种类型在请求和处理的时候的区别:

(1)application/x-www-form-urlencoded 

    特点:键值对形式,key=value

    请求时数据存在方式:

                    action为get时,请求参数存在于url中,参数与参数之间有?分割,形如:

                                https://www.baidu.com/s?rsv_sug7=100&rsv_sug2=0&rsv_sug4=10082

                    action为post时,请求参数存在于Form data中,参数与参数之间用&符号分割,形如:

                                key1=value1&key2=value2&key3=value3

    接收时数据接收方式:

                    (1)使用@RequestParam接收

                    @RequestParam(value="name", required=true, defaultValue="lisi")

                            value:  参数名称

                            required:是否为必要值,默认为true,为true时如果不存在这个参数那么会报404错误

                            defaultValue:默认值

                            具体使用:

                     //完整写法
                      public String requestparam(@RequestParam(value="name", required=true, defaultValue="lisi") String name)   

                    (2)使用@ModelAttribute,使用该注解将请求参数绑定到指定对象上

                    (3)最原始的方式,使用HttpServletRequest.getParameter("参数名称")

(2)multipart/form-data

    该种媒体格式主要用于请求参数为二进制数据或者表单数据

    特点:数据与数据之间用自定义分隔符进行分割

    请求时数据存在方式:

                    数据存在Request payload中,数据格式类似如下:

                                    \r\n-----------------asd\r\n

                                    content-Disposition:form-Data;name="方法名";filename=“文件名”\r\n

                                    content-type:image/jpeg\r\n\r\n

                                     -----------------asd

                                      二进制文件流

    接收时数据接收方式:

                    (1)HttpServletRequest.getInputStream();

                      (2) HttpServletRequest.getReader();

(3)application/json

    特点:数据以json字符串进行传递

    请求时数据的存在方式:

                        数据存在Request payload中,数据格式为如下:

                                     {

                                        key1:val1,

                                        key2:val2

                                       }

    接收时数据的接收方式:

                        (1) 使用注解@RequestBody解析对象

                      (2)HttpServletRequest.getInputStream

                        (3)HttpServletRequest.getReader();



                            


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值