Java如何从HttpServletRequest中读取HTTP请求的body-阿里云开发者社区

开发者社区> 落葉知秋> 正文

Java如何从HttpServletRequest中读取HTTP请求的body

简介: Java如何从HttpServletRequest中读取HTTP请求的body
+关注继续查看

首先贴出原文地址,尊重原作者
http://blog.csdn.net/zxygww/article/details/47045055
注意:下面方法已验证通过。
HTTP请求中的是字符串数据:

//字符串读取
void charReader(HttpServletRequest request) {
    BufferedReader br = request.getReader();
    String str, wholeStr = "";
    while((str = br.readLine()) != null){
    wholeStr += str;
}
System.out.println(wholeStr);
}
//二进制读取
void binaryReader(HttpServletRequest request) {
    int len = request.getContentLength();
    ServletInputStream iii = request.getInputStream();
    byte[] buffer = new byte[len];
    iii.read(buffer, 0, len);
}

注意:

request.getInputStream();
request.getReader();
和request.getParameter("key");
这三个函数中任何一个函数执行一次后(可正常读取body数据),之后再执行就无效了。

从HttpServletRequest中得到完整的请求URL

String getFullURL(HttpRequest request) {

 StringBuffer url = request.getRequestURL();
 if (request.getQueryString() != null) {
  url.append(’?’);
  url.append(request.getQueryString());
 }
 return url.toString();
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
.net core 源码解析-web app是如何启动并接收处理请求(二) kestrel的启动
上篇讲到.net core web app是如何启动并接受请求的,下面接着探索kestrel server是如何完成此任务的。 1.kestrel server的入口KestrelServer.Start(Microsoft.AspNetCore.Hosting.Server.IHttpApplication) FrameFactory创建的frame实例最终会交给libuv的loop回调接收请求。
792 0
$headers = $this->input->request_headers();返回请求头(header)数组
请查看:CI中的输入类部分 建议用第一个 $headers = $this->input->request_headers() $this->input->request_headers() 在不支持apache_request_headers()的非Apache环境非常有用。
835 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2851 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10496 0
springboot 运行 jar 包读取外部配置文件
springboot 运行 jar 包读取外部配置文件
66 0
【曹操】 angular js双向绑定数据通过bootstrap请求获取不到表单数据
在做项目的时候,在VidyoCallFlowEntry页面中,通过name字段双击跳转弹出VidyoCallFlow页面,同时传入name的值作为参数进行查询,并展示查询结果。但在路由中获取到name的值,通过angular js双向绑定的方式赋值给VidyoCallFlow页面的vidyoname的值,发现并没有查询到结果,但是根据该name的值在数据库中查询,是有结果的。
1251 0
JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
一、乱码原因 ①传输方和接收方采用的编码不一致。传输方对参数采用的是UTF-8编码而接收方却用GBK进行解析,当然是乱码。 ②Tomcat服务器默认采用的ISO8859-1编码得到参数值。虽然①中采用了同样的编码方式,但经过tomcat一处理,也会出现乱码(GET方式)   二、解决办法 方法一 每次传输都手动设置编码(GET方式传输数据) 传输方 String name =
1282 0
Struts2中请求参数的接收方式和ModelDriven机制及其运用
odelDriven   为什么需要ModelDriven   所谓ModelDriven,意思是直接把实体类当成页面数据的收集对象。比如,有实体类User如下:   package cn.com.
874 0
+关注
17
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载