Есть хостинг для сайта от reg.ru, управляемый ISP Manager'ом, установлена CentOS 6.8. Каким образом, используя Java, можно обрабатывать JSON-запросы, которые приходят на сервер? То есть, прямо на его IP-адрес на определенный порт, или же на какую-то страницу. Не знаю толком, как подойти к этому вопросу.
Подробнее:
1. Серверная часть:
У меня есть сервер на линуксе, мне нужно научить его обрабатывать входящие запросы. На php все делается предельно просто (указываем адрес для получения запросов, затем file_get_contents('php://input')
и json_decode($json)
), это я знаю, но мне нужно реализовать это на Java. Как к этому подступиться, я не знаю. Задавал некоторое время назад похожий вопрос, который потом удалил, но там была немного другая суть.
2. Что касается самих запросов:
Работаю с VK API, то есть, каждый раз при обновлениях в сообществе, новых сообщениях или еще чем-то, ВК будет слать POST-запросы на тот адрес, который я укажу:
Адрес вида IP:PORT я, скорее всего, смогу указать, но лучше было бы, если бы я мог обрабатывать запросы, отправленные, например, на адрес того же php-файла.
Буду благодарен за любую помощь. Не знаю точно, как решить этот вопрос, потому и решил спросить. Если единственный вариант - писать сервер и прослушивать порты, тогда буду копать в эту сторону. Тогда вопрос вдогонку к этому: достаточно ли джава кроссплатформенная, чтобы я на маке написал вышеописанное приложение, и оно спокойно работало под линухом?
Для простого старта могу предложить эти библиотеки:
Это маленький фреймворк для запуска веб сервера "из коробки". Если устроят настройки по умолчанию, достаточно будет указать только методы обработки запросов.
Вот тут есть пример RestAPI приложения.
public class HelloWorld {
public static void main(String[] args) {
get("/hello", (req, res) -> {
return "Hello World";
});
}
}
Эта библиотека которую указывают в примерах предыдущего фреймворка и, пожалуй лучше ее и использовать.
// Serialization
Gson gson = new Gson();
gson.toJson(1); // ==> 1
gson.toJson("abcd"); // ==> "abcd"
gson.toJson(new Long(10)); // ==> 10
int[] values = { 1 };
gson.toJson(values); // ==> [1]
// Deserialization
int one = gson.fromJson("1", int.class);
Integer one = gson.fromJson("1", Integer.class);
Long one = gson.fromJson("1", Long.class);
Boolean false = gson.fromJson("false", Boolean.class);
String str = gson.fromJson("\"abc\"", String.class);
String[] anotherStr = gson.fromJson("[\"abc\"]", String[].class);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Первая мапа выдает размер 3, все окНо та, которая заполняется из бд, всегда имеет размер 0, повторяющихся ключей и значений нет
Здравствуйте, появилась проблемаДелаю телефонную книжку, конкретно - изменение контакта (при тапе на контакт в списке открывается новая...
Здравствуйте Я только начинающий и прошу не судить строго и помочьПроблема состоит в том, что я имею 5 кнопок на BottomNavigationBar и вопрос в том,...
Есть сервер, который по команде присылает некоторое количество байтОбъём данных заранее известен - 280 Кбайт