2

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

我正在使用 Apache Wink 1.0 和 Apache Wink RestClient。文档说这就是你做 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 的编写器”。

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

4

1 回答 1

0

您的代码看起来非常正确,只是我希望帖子使用 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);
于 2012-03-02T18:34:33.343 回答