我的公司正计划实施一个远程编程工具来配置现场的嵌入式设备。我假设这些设备上有一个HTTP客户端,并计划实现一些REST服务供他们访问。不幸的是,我发现他们有一个TCP堆栈但没有HTTP客户端。我的一位同事建议我们尝试在没有HTTP客户端的情况下通过端口80发送“soap packet”。这些设备也没有任何SOAP客户端。这可能吗?如果设备连接到网络上运行的Web服务器会有影响吗?我很欣赏有关如何实现此类内容的任何建议或最佳实践。
答案 0 :(得分:2)
您根本不需要HTTP客户端。 HTTP是一种非常简单的基于文本的协议,如果需要,您可以自己实现。
那就是说,你可能不需要自己实现它。如果他们有TCP堆栈和标准套接字库,您可以找到一个包含HTTP或SOAP功能的简单C库(例如this one)。然后,您可以将该库构建到您的应用程序中。
答案 1 :(得分:2)
基本HTTP并不是手动实现的特别困难的协议。这是一个基于文本和行的协议,除了有效载荷,服务器与“原始的,火腿吝啬的”客户端很好地协作,这是一个简单的客户端需要。
如果您可以只使用一个子集,那么只需编写并完成即可。
答案 2 :(得分:2)
如果您的服务器正在提供简单文件,那么嵌入式设备实际上只需要发送HTTP GET request(可能需要一些额外的数据来识别设备,因此服务器可以知道要发送的固件版本)。
从那里开始,读取嵌入式设备套接字上的原始数据几乎是一件简单的事情 - 您可能只需要忽略响应中的HTTP标头,或者您可能需要将服务器配置为不发送它对于那些要求。
答案 3 :(得分:0)
您可以通过套接字实现一个简单的http客户端(以下是如何在ruby中执行此操作的示例:http://www.tutorialspoint.com/ruby/ruby_socket_programming.htm)
这可能取决于您在嵌入式设备上可用的技术 - 如果您可以轻松使用JSON或XML,那么使用上述方法的Web服务方法可能对您有用。