如何发送带有多个参数的发布请求

时间:2014-11-05 11:48:12

标签: java post resttemplate

我有一个项目,我们从Java Script调用GET方法:调用的方法如下:

public
@ResponseBody
Map run( @RequestParam Map map, HttpServletRequest request,   HttpServletResponse response) throws Exception {

}

现在我正在编写一个Micro服务来完成上述方法中完成的工作。并且要求是这个方法将调用微服务。我唯一坚持的是将(HttpServletRequest请求,HttpServletResponse响应)传递给我正在调用的微服务中的方法,因为他们在那里有一些数据将是用过的。

我在微服务中的方法定义如下:

@POST
@Path("/myPostCall")
public String myPostCall(Map map,HttpServletRequest request,       HttpServletResponse response) throws Exception{
}

现在我试图通过

来调用它
 RestTemplate abc = new RestTemplate();
abc.postForObject("http://localhost:8008/report/run", report1, String.class);

它给了我422错误。但是,如果我删除请求,微服务方法中的响应参数。它运行良好。但我也需要它们。因为他们有数据。有什么不符合我的理解。

1 个答案:

答案 0 :(得分:0)

您可以在课程中将它们用作私有变量:

@Context 
private HttpServletRequest request;
@Context 
private HttpServletResponse response;

@POST
@Path("/myPostCall")
public String myPostCall(..., @Context HttpServletRequest request, @Context HttpServletResponse response) throws Exception{
    //do some stuff
}