Как отправить данные JSON в веб-сервис, используя Apache Wink RestClient? - PullRequest
2 голосов
/ 02 марта 2012

Я пытаюсь протестировать JAX-RS, выполняя POST-данные JSON из Java.

Я использую 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».

Любые идеи или предложения приветствуются!

Rob

1 Ответ

1 голос
/ 02 марта 2012

Ваш код выглядит довольно корректно, за исключением того, что я ожидаю, что публикация будет выполнена с использованием объекта 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);
...