Http Post в JAVA - PullRequest
       35

Http Post в JAVA

3 голосов
/ 09 декабря 2011

Я не работал с HTTP post / get раньше, мой предстоящий проект в моем офисе основан на http post / get in java.Это в основном клиент-серверное приложение.клиент опубликует некоторую информацию, и мне нужно получить эту информацию и обработать строку и наоборот.этот проект должен быть разработан на J2SE.Вы можете предположить, что это нечто вроде обработки сообщений в очереди JMS.Я гуглил информацию, но большая часть информации была для веб-приложения, моя должна работать как очередь сообщений.Может кто-нибудь объяснить мне, как это сделать или указать мне, где я могу получить некоторую полезную информацию.

Спасибо Арун

Ответы [ 5 ]

3 голосов
/ 09 декабря 2011

Ну, если вам не нужно специально использовать строгий HTTP, и вам нужно просто использовать Java SE (а не Java EE, которая исключает сервлеты, JSP, JMS и т. Д.), Тогда вам, вероятно, нужно исследовать ServerSocket и Socket классов.

Сервер

Ваш сервер должен будет прослушивать порт TCP (скажем, порт 8080) - обычно вы выбираете портчисло от 1025 до 65 535, однако, если вы пытаетесь использовать уже определенную службу с портом по умолчанию, используйте его. Обратите внимание, что в unix для прослушивания на любом порту ниже 1024 я считаю, что вам нужно быть пользователем root. Традиционно порт HTTP используется для HTTP.

Для прослушивания этогопорт, вам нужно что-то вроде этого в вашем коде:

ServerSocket srvSocket = new ServerSocket(8080);
Socket socket = srvSocket.accept();

Это в значительной степени самый основной код, который заставит ваше приложение ждать, пока что-то подключится к порту 8080. После подключения вы можете получить обаInputStream и OutputStream для подключенного клиента путем опроса возвращенного объекта socket, позволяющего вам читать содержимое с клиента, и вставки этих запросов в очередь.Затем эта очередь может быть обработана другим потоком.

Клиент

Чтобы клиент мог подключиться к серверу, вам необходимо использовать что-то на основеследующий пример:

Socket connection = new Socket("server.domain.com", 8080);
OutputStream output = connection.getOutputStream();

Затем вы записываете свой запрос на сервер в OutputStream (и читаете из InputStream, возвращенного из getInputStream(), если вы ожидали ответа)

Приведенный код довольно простой, но он должен дать вам общее представление о том, как действовать.Вы даже можете использовать этот метод, если хотите использовать настоящий HTTP, однако в этом случае лучше использовать предварительно подготовленную библиотеку (хотя вполне вероятно, что вам не понадобятся все функции, определенные в спецификации HTTP).сам).

В любом случае, я надеюсь, что это даст вам хорошую отправную точку для построения.

3 голосов
/ 09 декабря 2011

Jetty - это популярный веб-сервер, разработанный для простого встраивания в приложение.

Его компонент HTTP-сервера может работать внутри вашего приложения и отвечать на запросы, отправляя ваш пользовательский код.

Jetty также имеет HTTP-клиент , который можно использовать на стороне клиента для отправки запросов.

Это довольно большая тема, и я не смогу опубликовать полное руководство, но Документация Jetty обычно очень высокого качества и должна быть хорошей отправной точкой.

0 голосов
/ 09 декабря 2011

У меня также в основном фон SE.На стороне клиента написать get / post довольно просто.Или вы можете Google, чтобы найти исходный код.Я обнаружил, что использование REST было простым и понятным.На стороне сервера есть много вариантов, и у меня очень ограниченный опыт.Я написал сервер, используя стандартный JEE6, и это было не слишком больно, но, похоже, это не вариант для вас.

0 голосов
/ 09 декабря 2011

Если вы не ограничены J2SE, вы можете использовать Сервлеты для управления методами POST / GET HTTP. Оцените, если это возможно, иначе вы бы заново изобрели колесо

0 голосов
/ 09 декабря 2011

Я предлагаю вам начать с изучения основ протокола HTTP.Эта статья - хороший стартер.После того, как вы поняли основы, следуйте этой статье о том, как программно общаться (читать / писать) с HTTP-серверами.После этого Google - твой друг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...