java获取post中的_关于Java Post数据请求和接收代码实例

Java编程Post数据请求和接收代码详解

这两天在做http服务端请求操作,客户端post数据到服务端后,服务端通过request.getParameter()进行请求,无法读取到数据,搜索了一下发现是因为设置为text/plain模式才导致读取不到数据

urlConn.setRequestProperty("Content-Type","text/plain; charset=utf-8");

若设置为以下方式,则通过request.getParameter()可以读取到数据

urlConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

enctype的三种编码

form表单中enctype属性可以用来控制对表单数据的发送前的如何进行编码,即在发送到服务器之前,所有字符都会进行编码(空格转换为"+"加号,特殊符号转换为ASCIIHEX值)。默认是application/x-www-form-urlencoded。

multipart/form-data用于发送二进制的文件,其他两种类型不能用于发送文件

text/plain用于发送纯文本内容,不对特殊字符进行编码,一般用于email之类的。

application/x-www-form-urlencoded和text/plain的区别简单讲就是一个发送html内容,一个发送纯文本内容

application/x-www-form-urlencoded在发送前编码所有字符(默认)

multipart/form-data不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。

text/plain空格转换为"+"加号,但不对特殊字符编码。

当定义enctype为application/x-www-form-urlencoded时,使用以下方式接收数据

request.getParameter(参数名);

当定义enctype为text/plain时,使用以下方式接收数据

// 接收请求数据

BufferedReader reader = request.getReader();

char[] buf = new char[512];

int len = 0;

StringBuffer contentBuffer = new StringBuffer();

while ((len = reader.read(buf)) != -1) {

contentBuffer.append(buf, 0, len);

}

String content = contentBuffer.toString();

if(content == null){

content = "";

}

post与get

tp请求在所有的编程语言中几乎都是支持的ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值