Я хочу отправить Pojo с POST, используя джерси.
Я так понимаю, есть 2 версии Джерси: 1... и 2...
Я добавляю код в существующий проект, который использует:
compile('com.sun.jersey:jersey-bundle:1.19')
compile('com.sun.jersey:jersey-json:1.19')
compile group: 'org.codehaus.jackson', name:'jackson-jaxrs', version: '1.1.1'
Я пробовал несколько способов отправить 2 PoJos в теле запроса POST.
но ни один из них не работал.
public void acquireDevice1(Device device, int port) throws InvalidArgumentException {
WebResource webResource = this.client.resource(this.rootUri);
webResource.type(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.post(Device.class, device)
.post(Integer.class, port);
}
а также
@Override
public void acquireDevice(Device device, int port) throws InvalidArgumentException {
ObjectMapper mapper = new ObjectMapper();
String deviceString = null;
try {
deviceString = mapper.writeValueAsString(device);
} catch (IOException e) {}
Client client = Client.create();
WebResource webResource = client.resource(rootUri + "/devices/acquireDevice/");
ClientResponse response = webResource
.type("application/json")
.post(ClientResponse.class, deviceString);
if (response.getStatus() != 201) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatus());
}
}
я должен обернуть все это в map<string,object>
?