如何使用Apache Wink RestClient将JSON数据发布到Web服务?

时间:2012-03-02 17:18:56

标签: java json jax-rs apache-wink

我正在尝试通过从Java进行JSON数据POST来测试JAX-RS。

我正在使用Apache Wink 1.0和Apache Wink RestClient。 docs说这是你做POST的方式......

RestClient client = new RestClient();
Resource resource = client.resource("http://services.co");
String response = resource.contentType("text/plain").accept("text/plain").post(String.class, "foo");

...但是我对POST JSON数据做了哪些更改?

我试过了:

JSONObject json = new JSONObject();
json.put("abc", 123);

RestClient client = new RestClient();
Resource resource = client.resource("http://services.co");
JSONObject response = resource.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).post(JSONObject.class, json);

...但我在POST时遇到此错误的异常:“类型类net.sf.json.JSONObject和媒体类型application / json没有编写器。”

非常感谢任何想法或建议!

罗布

1 个答案:

答案 0 :(得分:1)

您的代码看起来非常正确,除了我希望使用String实体完成帖子。因此,您可能想要更改:

JSONObject response = resource.contentType(MediaType.APPLICATION_JSON)
            .accept(MediaType.APPLICATION_JSON).post(JSONObject.class, json);

要:

String response = resource.contentType(MediaType.APPLICATION_JSON)
            .accept(MediaType.APPLICATION_JSON).post(String.class, json);