Как разместить веб-сервер в приложении React Native, который может отвечать на запросы GET / POST? - PullRequest
0 голосов
/ 06 октября 2018

Я создаю приложение, в котором мне нужно разместить веб-сервер в моем приложении React Native, которое может отвечать на GET/POST/PUT/DELETE запросы.

Вариант использования:
Мне нужно отправить некоторые данные из моегоПК на мое мобильное приложение (где сервер должен быть размещен), а затем я буду печатать эти данные из моего мобильного приложения.

Я пробовал эти пакеты, React Native http-bridge и response-native-http-server , но оба дают мне ошибки, которые я не знаю какРазрешить.

Если кто-то пробовал какой-либо из этих пакетов или любой другой способ настроить веб-сервер в приложении React-native, пожалуйста, помогите :)

РЕДАКТИРОВАТЬ
У меня есть способ решить мою проблему и заставить один из пакетов работать правильно, поэтому, пожалуйста, смотрите мое решение в ответах.:)

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Замените componentWillMount () с кодом ниже:

componentWillMount() {
  // initalize the server (now accessible via localhost:1234)
  httpBridge.start(5561, "SERVICENAME", function(request) {

      // you can use request.url, request.type and request.postData here
      if (request.type === "GET" && request.url.split("/")[1] === "users") {
        httpBridge.respond(request.requestId, 200, "application/json", "{\"message\": \"OK\"}");
      } else {
        httpBridge.respond(request.requestId, 400, "application/json", "{\"message\": \"Bad Request\"}");
      }

  });
}

Тест:

curl <device_ip_address>:5561/users -v

Вы должны получить:

{"message": "OK"}

Ссылка: https://github.com/alwx/react-native-http-bridge/issues/15

0 голосов
/ 20 октября 2018

Решение:

Используйте Реагируйте на собственный пакет http-bridge и следуйте их документации, в основном, связующей части документации.И они на самом деле забыли добавить аргумент «SERVICENAME» в этой строке:

httpBridge.start(5561, function(request) {  

Итак, добавьте аргумент так:

httpBridge.start(5561,"SERVICENAME", function(request) {  

После этого сервер будет нормально работать вваше родное приложение.

...