HTTP-сервер работает в приложении Android - PullRequest
0 голосов
/ 17 мая 2018

Я работаю над многослойным приложением для Android, где мне нужно перехватывать HTTP-запросы, изменять один из заголовков, выполнять и возвращать ответы.Я не могу изменить способ создания запросов, но я могу изменить базовый URL-адрес API, используемый для запросов.Подход, который я выбрал, заключался в написании прокси-сервера, прослушивающего определенный порт и выполняющего работу посредника:

  1. прием запросов,
  2. применение необходимых изменений к HTTP-запросам,
  3. его выполнение и
  4. возвращение ответа.

Я применил SparkJava в качестве HTTP-сервера и OkHttpClient в качествеHTTP-клиент.Он работал как шарм, пока я не обнаружил, что он работает только на Android 8 и новее.Существует проблема с отсутствием ThreadLocal<S> ThreadLocal.withInitial (Supplier<? extends S> supplier) в API до 26, который используется в бэкэнде SparkJava - Jetty).

Я думаю, я попытаюсь найти другую среду HTTP-сервера, работающую в более старом API, и переопределить мой прокси.

Между тем, кажется ли, что этот подход приемлем?Или, может быть, есть другой способ проксирования HTTP-запросов в приложении Android, который позволял бы изменять заголовки, используя только опцию изменения URL базового API?

Все идеи очень ценятся.

PS.Я знаю, что в типичном приложении такой вид проксирования создает проблему безопасности, но в данном случае это не проблема.

...