java url form data_java – @FormDataParam和@FormParam之间有什么区...

> @FormDataParam应该与Multipart类型数据一起使用(即multipart / form-data或MediaType.MULTIPART_FORM_DATA),它的原始形式看起来像

Content-Type: multipart/form-data; boundary=AaB03x

--AaB03x

Content-Disposition: form-data; name="submit-name"

Larry

--AaB03x

Content-Disposition: form-data; name="files"; filename="file1.txt"

Content-Type: text/plain

... contents of file1.txt ...

--AaB03x--

Multipart主要用于发送二进制数据,如非文本文件.

> @FormParam用于url编码的请求参数(即application / x-www-form-urlencoded或MediaType.APPLICATION_FORM_URLENCODED),原始形式看起来像

param1=value1&param2=value2

这两种类型主要用于客户端表单.例如

以上将发送请求参数作为application / x-www-form-urlencoded.它将以原始形式发送

gender=male&name=peeskillet

在服务器端,我们可以为表单中的每个命名参数使用@FormParam

@FormParam("gender") String gender, @FormParam("name") String name

但是如果我们需要发送一个图像以及参数,application / x-form-url编码的数据类型是不够的,因为它只处理文本.所以我们需要使用Multipart

这里指定了Multipart类型,现在浏览器会发送类似的请求

Content-Type: multipart/form-data; boundary=AaB03x

--AaB03x

Content-Disposition: form-data; name="gender"

Male

--AaB03x

Content-Disposition: form-data; name="name"

Peskillet

--AaB03x

Content-Disposition: form-data; name="avatar"; filename="image.png"

Content-Type: image/png

... binary content of image file ...

--AaB03x--

在服务器上,与上面的application / x-www-form-urlencoded示例类似,对于每个Multipart参数(或更精确的字段),我们可以使用@FormDataParam来表示每个参数

@FormDataParam("gender") String gender,

@FormDataParam("name") String name,

@FormDataParam("avatar") InputStream avatar

也可以看看:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值