你好。
我阅读了很多关于这个主题的信息,但没有一个适合我。我是第一次这样做,所以不要发誓)
我用 java 编写了一个项目——任务是将它传输到 android 应用程序。您可以完全推动它,但创建一个该应用程序可以访问的服务器会更有趣。现在所需要做的就是向服务器发送图像和一些文本,并从中获取一些其他文本,例如 Json 格式的文本。
然而,我看到了某种带有控制器、图形等的黑暗森林。有什么简单的解决办法吗?
你好。
我阅读了很多关于这个主题的信息,但没有一个适合我。我是第一次这样做,所以不要发誓)
我用 java 编写了一个项目——任务是将它传输到 android 应用程序。您可以完全推动它,但创建一个该应用程序可以访问的服务器会更有趣。现在所需要做的就是向服务器发送图像和一些文本,并从中获取一些其他文本,例如 Json 格式的文本。
然而,我看到了某种带有控制器、图形等的黑暗森林。有什么简单的解决办法吗?
首先,您需要了解与后端的交互是如何发生的。总的来说,有两种选择:http 和 WebSocket。从您的描述中可以清楚地看出正在考虑 http:它假定客户端-服务器交互。也就是说,当客户端请求连接时,位于特定地址 (URL) 的服务器会监听(在特定的 TCP 端口上)。因此,互动始于客户的主动性。网上有很多关于HTTP协议的资料,包括规范(虽然有些过时,但不至于过时)。
目前主要用于此类交互的http 1.1协议是基于文本的。即连接建立后,客户端开始向服务器发送请求,由字符流组成。服务器以某种方式处理这个字符流,并将字符流返回给客户端作为响应。就这样,“请求”-“响应”的循环结束了。因此,您需要两个库 - 一个可以侦听指定 TCP 端口并为您提供请求文本流和记录响应流的能力的 http 服务器。许多 http 服务器库还提供了方便的工具,用于解析和解析 url 字符串、http 标头等。在 Java 的最简单情况下,例如Grizzly。Android 中的 http 客户端将向服务器发送 http 请求并接收响应。
实际上,服务器应该响应的 JSON 也是一个字符流。但它需要以某种方式从您可用的编程语言中的那些数据结构中形成。在最简单的情况下,您可以使用字符串和变量值的串联。在更复杂的情况下,为了方便和减少错误,使用特殊库来帮助执行从 JSON 或 XML 文本到语言数据结构的转换,反之亦然。因此,您需要决定这种转换的方法。
最后,您需要在某处部署您的服务器。例如,为此使用Heroku很方便。
或者你通常可以使用现成的 JSON 存储,如Firebase作为后端
要在本地机器上调试后端,使用Postman之类的 http 客户端非常方便。如果您有更具体的问题 - 问。
如果您想开始做一些复杂而有趣的事情,我强烈建议您在 Erlang 虚拟机上了解Elixir和Phoenix 。
随着经验的增长,就会明白服务端逻辑的任务很多,堆在一起处理很不方便。事实证明,最好将与外部设备和协议(数据库、网络、磁盘、队列)交互的逻辑与实现系统关键业务逻辑的核心分开。然后是时候熟悉六边形架构了。然后事实证明,这一切必须同时处理来自不同用户的数十个或数百个请求——然后才有可能掌握 Actor Model。或者并行和并发编程的另一个实现抽象。
但是,当然,要编写您的第一个 http 后端,这不是必需的。