Я использую com.sun.jersey.api.*
для вызова службы REST, я не могу использовать другие библиотеки и мне нужно сделать немного более сложный запрос, такой как
"customer" : {
"name": "Smith",
"documents" :
[{"id" : "100", "content" : "lorem"},
{"id" : "101", "content" : "ipsum"}]
}
Вот код, который я пробовал до сих пор, просто запросить Customer::name
и ... он не работает.
Client client = Client.create();
WebResource resource = client.resource(URL);
String response = resource.queryParam("customer.name", "Smith")
.accept(MediaType.APPLICATION_FORM_URLENCODED)
.post(String.class);
Под "неудачей" я имею в виду, я не получаю null
на стороне сервера вместо "Смит".
Редактировать
Ну, я сделал очевидную ошибку, мне нужно опубликовать тело, а не запрос. Тем не менее ...
String body = "{\"customer\": {\"name\" : \"Smith\"}}";
String s = resource
.accept(MediaType.APPLICATION_FORM_URLENCODED)
.post(String.class, body);
System.out.println(body);
Это печатает
{"customer": {"name": "Smith"}}
И входящий запрос к серверу null
.
Пытался использовать тот же JSON, что и body в Postman - это сработало.