如何在React Native应用程序中托管可响应GET / POST请求的Web服务器?

时间:2018-10-06 10:25:51

标签: android ios react-native server webserver

我正在构建一个需要在我的React Native应用中托管Web服务器的应用,该服务器可以响应GET/POST/PUT/DELETE请求。

用例:
我需要将一些数据从PC发送到我的移动应用程序(应在其中托管服务器),然后再从移动应用程序打印该数据。

我尝试了React Native http-bridgereact-native-http-server这两个软件包,但都给了我我不知道如何解决的错误。

如果有人尝试了这些软件包中的任何一种或以其他任何方式在React-native应用程序中设置Web服务器,请提供帮助:)

编辑
我有办法解决问题并使其中一个程序包正常工作,因此请在解答中查看我的解决方案。 :)

2 个答案:

答案 0 :(得分:1)

解决方案:

使用React native http-bridge软件包并遵循其文档,主要是文档的链接部分。他们实际上忘记在此行中添加“ SERVICENAME”参数:

_Generic

因此,添加这样的参数:

httpBridge.start(5561, function(request) {  

此后,服务器将在您的本机应用程序中正常运行。

答案 1 :(得分:0)

用以下代码替换 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