您好我有一个从Liferay的buildServices生成的webService。 方法看起来像这样
public User getUserTest(long userId) {
User u = null;
try {
Token token = OAuthFactoryUtil.createToken("sasa", "sdad");
} catch (OAuthException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
u = UserLocalServiceUtil.getUser(userId);
System.out.println("xx user " + u.getScreenName());
} catch (Exception e) {
System.out.println(" Exception ************* " + e.toString());
}
return u;
}
这个ws中的参数是这样的:
http://localhost:8080/demo-portlet/api/json?serviceClassName=com.sample.portlet.library.service.BookServiceUtil&serviceMethodName=getUserTest&userId=10195&serviceParameters=[userId]
以userId
作为参数..
如果需要HttpServletRequest
,您将如何传递参数..我的方法看起来像这样
public User getUserTest(HttpServletRequest httpRequest) {
User u = null;
try {
String version = httpRequest.getHeader("X-PHM-APP-VERSION");
Token token = OAuthFactoryUtil.createToken("sasa", "sdad");
} catch (OAuthException e1) {
e1.printStackTrace();
}
try {
String authorization = httpRequest.getHeader("Authorization");
u = UserLocalServiceUtil.getUser(Long.valueOf(authorization));
System.out.println("authorization --> " + authorization);
System.out.println("xx user " + u.getScreenName());
} catch (Exception e) {
System.out.println(" Exception ************* " + e.toString());
}
return u;
}
我需要HttpServletRequest
从标头获取参数,而不是通过url。有没有更好的方法从标头获取参数?谢谢你的帮助
答案 0 :(得分:3)
我认为Web服务层通常处于稍后阶段,您永远不会传递请求。理想情况下,您要做的是将header参数传递给Web服务而不是请求
答案 1 :(得分:0)
在Liferay中,您将从HttpServletRequest
获得PortletRequest
。请使用com.liferay.portal.util.PortalUtil
课程。
其中有两种方法。 getHttpServletRequest()
和getOriginalServletRequest()
,您将从这些方法中获得两个核心级别的http请求。