我正在尝试通过从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没有编写器。”
非常感谢任何想法或建议!
罗布
答案 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);