首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rest WS @Post消耗HttpServletRequest不起作用

Rest WS @Post消耗HttpServletRequest不起作用
EN

Stack Overflow用户
提问于 2015-01-28 16:33:50
回答 2查看 504关注 0票数 0

下面是我的cxf Rest WS:

代码语言:javascript
复制
@POST
@OPTIONS
@Path("/push")
@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_FORM_URLENCODED })
public Response push(@FormParam(value="agentId") String agentId);

我在表单中使用它:

代码语言:javascript
复制
<form id="form1" METHOD=POST ACTION="http://localhost:8080/uwv_interfacing-0.2.0-SNAPSHOT/api/rest/callHistory/push?AppKey=536f47d5-184f-3041-850c-bcad9f3afa49">
  <input type="hidden" name="agentId" value="ofize">
  <button type="submit" name="modifier" value="1">Submit</button>
</form>

我想得到一个HttpServletRequest而不是每个字段,但是当我用一个HttpServletRequest替换"String agentId“时,它是空的,我没有字段。我尝试将"@FormParam(value="agentId")“替换为"@Context”,但我不确定使用哪种方法更好。有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2015-01-28 17:18:26

您可以在类中注入MessageContext,如下所示

代码语言:javascript
复制
import javax.ws.rs.core.Context;
import org.apache.cxf.jaxrs.ext.MessageContext;
...
@Context 
private MessageContext messageContext;
...
// in your restful method, you could do something like
HttpServletRequest httpServletRequest = messageContext.getHttpServletRequest();
票数 0
EN

Stack Overflow用户

发布于 2015-02-03 15:43:42

您可以使用@Context( qualified name: javax.ws.rs.core.Context)直接获取HttpServletRequest,因此您的代码应该如下所示。

代码语言:javascript
复制
@POST
@OPTIONS
@Path("/push")
@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_FORM_URLENCODED })
public Response push(@FormParam(value="agentId") String agentId, final @Context HttpServletRequest request);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28187741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档