java接收post请求数据_Java Post 数据请求和接收

本文介绍了在Java中处理HTTP POST请求时如何正确设置Content-Type以读取数据。讲解了application/x-www-form-urlencoded和text/plain两种编码的区别,并提供了接收不同编码类型数据的方法。同时,文章还展示了使用HttpURLConnection发送和接收POST请求的示例代码。
摘要由CSDN通过智能技术生成

这两天在做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属性可以用来控制对表单数据的发送前的如何进行编码,即在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。默认是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 

好的,您想知道如何使用PHP接收JSON POST数据,下面是一个简单的示例代码: ```php <?php // 获取POST请求中的JSON数据 $json = file_get_contents('php://input'); // 将JSON数据转换为PHP数组 $data = json_decode($json, true); // 打印PHP数组 print_r($data); ?> ``` 在上面的代码中,我们首先使用`file_get_contents()`函数从`php://input`中获取POST请求中的JSON数据,然后使用`json_decode()`函数将JSON数据转换为PHP数组,最后使用`print_r()`函数打印PHP数组。 如果您想要在接收POST请求后返回JSON数据,可以使用如下代码: ```php <?php // 获取POST请求中的JSON数据 $json = file_get_contents('php://input'); // 将JSON数据转换为PHP数组 $data = json_decode($json, true); // 创建一个包含返回数据的PHP数组 $response = array( 'status' => 'success', 'message' => 'Received JSON data successfully!', 'data' => $data ); // 将PHP数组转换为JSON字符串 $json_response = json_encode($response); // 设置HTTP响应头 header('Content-Type: application/json'); // 输出JSON字符串 echo $json_response; ?> ``` 在上面的代码中,我们首先使用`file_get_contents()`函数从`php://input`中获取POST请求中的JSON数据,然后使用`json_decode()`函数将JSON数据转换为PHP数组,接着创建一个包含返回数据的PHP数组,然后使用`json_encode()`函数将PHP数组转换为JSON字符串,最后设置HTTP响应头并输出JSON字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值