我正在构建一个需要在我的React Native应用中托管Web服务器的应用,该服务器可以响应GET/POST/PUT/DELETE
请求。
用例:
我需要将一些数据从PC发送到我的移动应用程序(应在其中托管服务器),然后再从移动应用程序打印该数据。
我尝试了React Native http-bridge和react-native-http-server这两个软件包,但都给了我我不知道如何解决的错误。
如果有人尝试了这些软件包中的任何一种或以其他任何方式在React-native应用程序中设置Web服务器,请提供帮助:)
编辑
我有办法解决问题并使其中一个程序包正常工作,因此请在解答中查看我的解决方案。 :)
答案 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