Как правильно обработать на Java входящий JSON?

161
17 января 2019, 13:40

Как делать запросы и их обрабатывать - я разобрался.

А как настроить приложение слушать на определенном порту, не могу разобраться.

В частности, мне нужно сделать обработчик входящего вебхука от Битрикс24. т.е.

В мануале битрикс сказано:

укажите url вашего обработчика в настройках исходящего webhook
https://your_server/your_webhook_script.php

код обработчика
<?php
/*
Битрикс24 передает в обработчик $_REQUEST с данными:
array(
 'PHONE_NUMBER' => '555666777', //номер, на который звонит пользователь Битрикс24
 'USER_ID' => '1', //пользователь, который звонит из интерфейса Битрикс24
 'CRM_ENTITY_TYPE' => 'LEAD', //тип объекта CRM, из карточки которого звонит пользователь Битрикс24
 'CRM_ENTITY_ID' => '248' //ID объекта CRM, из карточки которого звонит пользователь Битрикс24
)
*/
Answer 1

Если вам необходима авторизация, аутентификация И так далее, тогда лучше взять готовую реализацию, типа томката, которую вам уже посоветовали.

Если же вас интересует голая(core java) реализация и вы не будете отягощать Ее авторизацией и другими плюшками присущими Java ee, то в Java есть встроенный http сервер без наворотов, в котором у вас будет возможность получить строку с вашим Json, использую его для мини приложений типа выдачи статуса...

HttpServer server = HttpServer.create();
server.bind(new InetSocketAddress(8080), 0);
server.createContext("/json", new JsonHandler())
server.start();
class JsonHandler implements HttpHandler {
    @Override
    public void handle(HttpExchange exchange) throws IOException {
        InputStream requestBody = exchange.getRequestBody();
        ...
        OutputStream os = exchange.getResponseBody();
        ...
        os.close();
    }
}

для работы собственно json, лучше велосипед не изобретать а взять что-то, например я бы взял jackson

Answer 2

Вам нужно реализовать Java RESTful Web Services. Например на базе TomCat или Jersey. Почитайте тут, эта статья даст вам примерное понимание вопроса...

READ ALSO
Непонятная проблема с выбором элемента spinner Android

Непонятная проблема с выбором элемента spinner Android

Пытаюсь внедрить spinner у себя в приложенииВ списке есть три пункта, и по непонятной мне причине воспринимается выбор только 2,3 если начинать...

204
Как напечатать буквы в консоле через звездочки?

Как напечатать буквы в консоле через звездочки?

Есть 3 буквы на входе "А В В" Нужно вывести в консоль? Так должна выглядеть буква

211
Не подключаются несколько событий onTextChanged на каждый EditText

Не подключаются несколько событий onTextChanged на каждый EditText

Когда я пытаюсь присвоить одно событие onTextChanged к одному EditText, чтобы значение из этого EditText записалось в другой EditText, всё работает хорошоНо...

207
Программный отступ margin

Программный отступ margin

нужно отступить от нижнего правого угла, но если в view посадить bottom и right любое значение, то ничего не происходит, а отступ идет, только если...

157