Komunikacja SpringBoota z Klientem

0

Cześć,
Robię prosty projekt klient-serwer aplikacji Klienta Pocztowego. Serwer został napisany w Spring-boocie natomiast aplikacja klienta to klasyczna Java ze Swingiem. W kliencie mam dwie metody ResponseEntity:

@RequestMapping(value = "/send", method = RequestMethod.POST)
    public ResponseEntity<Void> mail(@RequestBody UserDataDto userDataDto) throws MessagingException {
        LOGGER.info("Nazwa odbiorcy: {}, Tytuł: {}, Treść: {} ",
        userDataDto.getRecipient(),
        userDataDto.getTitle(),
        userDataDto.getContent());

        return false != mailService.sendMail(userDataDto) ?
        new ResponseEntity<>(HttpStatus.OK) :
                new ResponseEntity<>(HttpStatus.BAD_REQUEST);
    }

    @RequestMapping(value = "/contacts", method = RequestMethod.GET)
    public ResponseEntity<ContactsDto> mail() {
        List<Recipients> recipients = new ArrayList<>();
        final boolean status = fileRepository.findFile(recipients);

        final ContactsDto contactsDto = new ContactsDto(recipients);
        LOGGER.info("Nazwa odbiorcow: {} ",
                contactsDto.getContacts());

        return false != status ?
                new ResponseEntity<>(contactsDto, HttpStatus.OK) :
                new ResponseEntity<>(HttpStatus.NOT_FOUND);
    }

Przy użyciu postmana wszystko działa okej. O ile nie mam problemów z pobraniem w kliencie JSONa z Get, co robię w ten sposób:

final HttpClient client = HttpClientBuilder.create().build();
        final HttpGet request = new HttpGet("http://127.0.0.1:8080/email/contacts");
        final HttpResponse response;  // Otrzymujemy odpowiedz od serwera.
        final Gson gson = new Gson();
        try {
            response = client.execute(request);
            final HttpEntity entity = response.getEntity();
            final String json = EntityUtils.toString(entity);
            System.out.println("Odczytujemy JSON'a z serwera:");
            System.out.println(json);
            final ContactsJson contactsJson = gson.fromJson(json, ContactsJson.class);
            for (Recipients r : contactsJson.getContacts())
                recipientBox.addItem(r.getRecipient().toString());
            System.out.println("Kod odpowiedzi serwera: " + response.getStatusLine().getStatusCode());
            System.out.println(contactsJson.getContacts());
            sendButton.setEnabled(true);
            titleField.setEnabled(true);
            messageField.setEnabled(true);
        } catch (IOException e) {
            e.printStackTrace();
        }

Tak totalnie nie wiem jak się za to zabrać dla POSTa, któremu JSONa muszę przekazać. Próbowałem tworzyć obiekt klasy, odpowiadającej UserDataDto z ResponseEntity i zamienić na JSONa przy pomocy biblioteki gson. Tylko co dalej.

0

Użyj jakiejś biblioteki to tych żądań, np. Retrofit'a, :)
http://square.github.io/retrofit/

1 użytkowników online, w tym zalogowanych: 0, gości: 1