Liferay - 如何在 "serveResource" 方法中检索 POST 请求的正文内容
Liferay - how to retrieve body content of POST request in "serveResource" method
我正在从我的 Angular 8 Liferay 7.3 Portlet 发出一个 POST 请求,并试图在 MVCResourceCommand
[=26] 的 serveResource
方法中获取它的内容=].
前端JS看起来像这样:
submit() {
let message = {
type: "form",
body: this.model
};
this.http.post<any>("http://my/url", message).subscribe(response => {
console.log(JSON.stringify(response));
})
}
消息到达端点,后端已配置好。
基于 , and 我还设置了 "com.liferay.portlet.requires-namespaced-parameters=false"
属性 以便命名空间不是问题 - 所以,基本上,检查列表中的每个点都已完成并且请求正文应该可以访问.
到目前为止,我读到的每个 post 都在谈论使用 ParamUtil.getString(uploadRequest, "text");
获取请求信息,但我不确定如果正文是 JSON 对象,这应该如何工作 - 我的意思是,应该如何如果 POST 正文如下所示,我会检索该值:
{
"firstVal": "abc",
"secondVal": "def",
"another": {
"objectVal1": 1,
"objectVal2": 2
}
}
多亏了this post,我才来到这段代码,它以字符串形式检索正文:
String body = PortalUtil.getHttpServletRequest(resourceRequest).getReader().lines()
.collect(java.util.stream.Collectors.joining(System.lineSeparator()));
虽然我解决了我的问题,但我想知道是否有其他方法可以做到这一点。
我正在从我的 Angular 8 Liferay 7.3 Portlet 发出一个 POST 请求,并试图在 MVCResourceCommand
[=26] 的 serveResource
方法中获取它的内容=].
前端JS看起来像这样:
submit() {
let message = {
type: "form",
body: this.model
};
this.http.post<any>("http://my/url", message).subscribe(response => {
console.log(JSON.stringify(response));
})
}
消息到达端点,后端已配置好。
基于 "com.liferay.portlet.requires-namespaced-parameters=false"
属性 以便命名空间不是问题 - 所以,基本上,检查列表中的每个点都已完成并且请求正文应该可以访问.
到目前为止,我读到的每个 post 都在谈论使用 ParamUtil.getString(uploadRequest, "text");
获取请求信息,但我不确定如果正文是 JSON 对象,这应该如何工作 - 我的意思是,应该如何如果 POST 正文如下所示,我会检索该值:
{
"firstVal": "abc",
"secondVal": "def",
"another": {
"objectVal1": 1,
"objectVal2": 2
}
}
多亏了this post,我才来到这段代码,它以字符串形式检索正文:
String body = PortalUtil.getHttpServletRequest(resourceRequest).getReader().lines()
.collect(java.util.stream.Collectors.joining(System.lineSeparator()));
虽然我解决了我的问题,但我想知道是否有其他方法可以做到这一点。