我正在向旧版 JSF 应用程序发出以下curl 请求:
curl -H "Accept: application/json" -H "Content-type: text/plain" -X POST \
-d '{"name":"value"}' http://localhost:8080/aaa/bbb
我遇到的问题是我不知道如何从 FacesContext 中检索发布的 JSON 数据作为原始字符串。
我尝试过以下方法:
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
这会返回一个空映射,我假设这是因为发布的数据未键入参数名称。
如果我使用以下内容进行调试:
FacesContext.getCurrentInstance().getExternalContext().getRequestContentLength()
我得到了正确的数据长度,即16
如果我使用以下内容进行调试:
FacesContext.getCurrentInstance().getExternalContext().getRequestContentType()
我得到了正确的类型,即文本/纯文本。
但是我不知道如何实际检索发布的数据本身。
如有任何帮助,我们将不胜感激。
亲切的问候
您可以调用
getReader()
类的 HttpServletRequest
方法来获取 BufferedReader
来读取 POST 内容数据。
((HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest()).getReader()