2012-09-23 135 views
3

我有一个web服务,我想通过POST方法发送一个JSON字符串给它。 到现在为止,我已经取得了Web服务使用的GET方法是这样的:如何将POST请求发送到REST Web服务并发送JSON?

@GET 
@Produces("application/json") 
@Path("{name}") 

public String getJson(@PathParam("name") String name) { 
    //TODO return proper representation object 
    CompanyDatabase cmpdb=new CompanyDatabase(); 
    String json=cmpdb.searchAgent(name); 
    return json; 
} 

我需要什么样的变化,使这种方法,使其接受POST数据?

+0

它似乎将'@ GET'改为'@ POST'应该可以工作。不是吗? – Vikdor

+0

它在netbeans IDE –

+0

中给出了一个错误,你是否也可以在你的问题中发布错误,以便有人能够更好地帮助你? – Vikdor

回答

1

要接受输入数据,您的方法需要声明消耗的内容不产生。

import javax.ws.rs.Consumes; 
import javax.ws.rs.POST; 
import javax.ws.rs.core.MediaType; 

@POST 
@Consumes(MediaType.APPLICATION_JSON) 
public void acceptsCustomer(Customer c) { 
    // .. do something with the input. 
} 

Customer类需要正确注释才能将JSON转换为Java POJO。对MediaTypes使用JAX-RS常量是一种很好的做法。

您还应该查阅您的JAX-RS提供程序(例如:RESTEasy或Jersey)的文档,因为这些用户指南可能会有示例。