我想从AngularJS应用程序发送一个帖子请求。 我打电话给
var data = {name: "Dave", age: 18};
$http.post(serviceAddress + 'cxf/addPerson', data};
Java CXF方面:
@POST
public Response addPerson( @Context HttpServletRequest request ) {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
. . .
}
我的名字和年龄都是null,而request.getParameterMap也是空的。
如何从请求有效负载中获取此值?我的Chrome开发者工具表示它会在请求有效负载中发送名称和年龄。所以服务器应该检索它。
答案 0 :(得分:0)
IOUtils.toString(request.getReader());
答案 1 :(得分:0)
将数据传递给Post方法的更好方法是发送JSon,然后转换为类(示例代码取自http://www.mkyong.com/webservices/jax-rs/integrate-jackson-with-resteasy/):
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
@Path("/json/product")
public class JSONService {
@GET
@Path("/get")
@Produces("application/json")
public Product getProductInJSON() {
Product product = new Product();
product.setName("iPad 3");
product.setQty(999);
return product;
}
@POST
@Path("/post")
@Consumes("application/json")
public Response createProductInJSON(Product product) {
String result = "Product created : " + product;
return Response.status(201).entity(result).build();
}
}
Git中有一些样本 - > https://github.com/apache/cxf
git clone git@github.com:apache/cxf.git
cd apache-cxf-3.1.11-src/distribution/src/main/release/samples/
./distribution/src/main/release/samples目录。