从HttpServletRequest中获取body
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从HttpServletRequest中获取body相关的知识,希望对你有一定的参考价值。
参考技术A 注意点是, 只能获取一次body如果已经有@RequestBody参数去接body,那么再从request中获取body就会有stream.close的异常
正常从流中读取就行了,有多种方式,以下列举一种
private static String getBody(HttpServletRequest request)throws BusinessException
try (InputStream is = request.getInputStream())
return IOUtils.toString(is,StandardCharsets.UTF_8);
catch (IOException ex)
log.error("read http request failed.", ex);
如何从 HttpServletRequest 获取完整的 url? [复制]
【中文标题】如何从 HttpServletRequest 获取完整的 url? [复制]【英文标题】:How to get the full url from HttpServletRequest? [duplicate] 【发布时间】:2014-07-04 18:24:29 【问题描述】:好的,我有这些代码:
HttpServletRequest httpRequest = (HttpServletRequest) request;
String requestQueryString = httpRequest.getQueryString();
System.out.println(requestQueryString);
打开网址“http://127.0.0.1:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997?_escaped_fragment_=home
”时,
打印出来了:
gwt.codesvr=127.0.0.1:9997?_escaped_fragment_=home
该网址缺少http://127.0.0.1:8888/MyProject.html?
部分。
如何解决?
【问题讨论】:
阅读HttpServletRequest的javadoc。都在里面。 它没有 getFullURL,我们必须构建单独的部分,但我正在寻找可以完成这项工作的 1 行代码 检查这篇文章这个问题似乎是重复的,..***.com/questions/2222238/… 【参考方案1】:应该是
httpRequest.getRequestURL() + "?" + httpRequest.getQueryString()
打印
http://127.0.0.1:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997?_escaped_fragment_=home
【讨论】:
如果网址是“xcd.com#!br”,那么您的代码可以正常工作吗? @tum#...
不应该在请求中发送。仅供客户端使用。
片段未在 HTTP 标头中发送:blog.httpwatch.com/2011/03/01/…以上是关于从HttpServletRequest中获取body的主要内容,如果未能解决你的问题,请参考以下文章
从 HttpServletRequest 获取 AsyncContext
从 HttpServletRequest 获取 XML 并用于端点
如何从 HttpServletRequest 获取完整的 url? [复制]