2017-06-04 85 views
0

我想從AngularJS應用程序發送一個請求。 我打電話如何從Java REST服務中的POST請求負載中檢索值?

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")); 
    . . . 
} 

我得到空的名字和年齡,並request.getParameterMap是空的爲好。

如何從請求有效載荷中獲取此值?我的Chrome開發人員工具稱它會在請求有效內容中發送名稱和年齡。所以服務器應該檢索它。

回答

0
IOUtils.toString(request.getReader()); 
+0

你應該添加一些信息,解釋爲什麼 – Pau

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 [email protected]:apache/cxf.git 
cd apache-cxf-3.1.11-src/distribution/src/main/release/samples/ 

的./distribution/src/main/release/samples目錄。