您好,欢迎来到尔游网。
搜索
您的当前位置:首页stm32f103zet6实现HTTP协议请求,UTF-8转码JSON打包上传

stm32f103zet6实现HTTP协议请求,UTF-8转码JSON打包上传

来源:尔游网
stm32f103zet6实现HTTP协议请求,UTF-8转码JSON打包上传

概述:

  最近在做⼀个项⽬,需要⽤stm32f103zet6开发板⾛HTTP协议,向疲劳驾驶检测设备发送请求消息,使其下发⼈脸识别的图⽚或参数信息,开发板进⾏接收,要求如下:

  1. 开发板作为客户端、疲劳驾驶检测是被作为服务器端   2. 标准HTTP协议

  3. 请求⽅法使⽤POST请求⽅式,上传或下发的数据放在消息主体中(entity-body)  4. 所有字符串需进⾏UTF-8转码  5. 双⽅交换的数据统⼀打包为JSON格式 思路:

  1. 封装HTTP请求数据包

    (1)弄清楚请求消息的具体格式

    (2)按照cJSON的使⽤⽅法⽤cJSON库中的接⼝函数将HTTP请求消息的数据封装为JSON包  2. 按照TCP-Client的流程进⾏TCP连接  3. 客户端向服务器端发送HTTP请求信息

   将封装的JSON数据包放在TCP发送函数中,发送给服务器  4. 服务器端接收到请求后向客户端发送响应信息

   ⽤TCP接收函数接收消息,接收到的消息应该是UTF-8编码的,JSON包数据  5. 对JSON包数据进⾏解析  6. 服务器关闭TCP连接

   ⼀般情况下,⼀旦服务器向浏览器发送完数据后它就要关闭TCP连接,除⾮客户端或服务器发送信息的时候加上了以下代码:   Connection:keep-alive

   TCP连接在发送后将仍然保持打开状态问题:

  1. HTTP请求消息的格式是什么???如下图(1)是标准请求消息格式,请具体举例,⽐如 获取⼈脸图⽚的请求消息格式是什么???在产品⼿册中说明如图(2)

   

   

                (1)

   

                    (2)   

  2. 知道了具体的请求消息格式后,

   (1)是否先需要造⼀个请求消息的字符串数组,然后再将该字符串数组进⾏UTF-8编码???,然后再将该UTF-8编码后的数据进⾏JSON封装???

   (2)或是直接使⽤cJSON数据库按照请求消息格式封装⼀个请求消息的JSON包,然后再将该JSON包进⾏UTF-8转码???  3. 针对第2个问题中的(1)(2)两点:

   (1)UTF-8编码后的数据进⾏JSON封装后,是否还需要转化成普通的字符串数据后,再通过TCP发送函数发送给服务器???   (2)先JSON封转再进⾏UTF-8转码后,是直接通过TCP发送函数发送,还是需要再转化成普通字符串数据后再通过tcp发送函数发送给服务器???

  4. 服务器响应客户端后,是否直接关闭TCP连接,还是在客户端发送请求消息的时候添加以下代码保持TCP连接???   Connection:keep-alive      

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务