Как реализовать HTTP-сервер на Android - PullRequest
8 голосов
/ 01 сентября 2011

У меня есть два приложения для Android в одной локальной сети, предоставляемые WIFI:

  1. Приложение (A), открывающее гнездо прослушивания на порту 8033
  2. Приложение (B), которое использует HttpClient для доступа (A) к порту 8033

Как сделать так, чтобы (A) мог выполнять запросы POST и GET для (B)?
Как выглядит URL, используемый (A) для доступа (B)?

Спасибо всем.

Ответы [ 3 ]

12 голосов
/ 01 сентября 2011

Вы можете спутать два разных уровня сетевого общения. Уровень 4 : TCP-соединение между двумя сокетами.
Логический канал между боку (может быть один (два процесса?) Или два разных компьютера), на этом уровне обрабатываются только данные обработки соединений. Уровень 7 : браузер / сервер приложений использовал определенный «язык» связи для обмена данными высокого уровня (файл, изображения, аудио ...) и обрабатывается на этом уровне.Ваш вопрос собирается открыть прослушивающее гнездо (уровень 4) и клиент, который общается с ним по протоколу HTTP (уровень 7).Таким образом, вы не можете заполнить пропущенную сторону прослушивания сокета для обработки протокола HTTP
Может быть, реализация Java-сервера может вам помочь.

1 голос
/ 03 декабря 2014

Я искал такое же решение и нашел NanoHTTPD - чрезвычайно простой серверный класс для обработки HTTP-запросов. Вы можете найти исходные и очень простые для понимания образцы на https://github.com/NanoHttpd

1 голос
/ 01 сентября 2011

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

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

...