STM32 LWIP HTTP客户端分段接收本地服务器文件
1.通过cubeMX,使用LWIP,开启HTTP功能
2.直接编译报错,提示没有fsdata_custom.c
报错位置fs.c 个人理解fsdata_custom.c是用作HTTP服务器时写个人网页用的,HTTP客户端不使用,找到定义处,修改为有的fsdata.c. HTTP库中自带的
不使用CUSTOM_FSDATA.
编译成功。
3.调用HTTP API httpc_get_file
需要3个回调函数。接收结束、接收到HTTP header、接收HTTP数据
配置httpc_get_file 函数参数
运行即可看到连接服务器成功(需要服务器设置不需要验证,否则会报401错误)
但是这个是一次性将文件全部接收,但是LWIP协议栈的内存有限,可能一次性不能够接收完。那么需要分段接收。
4.分段接收
修改http_client.c 添加接收的数据段范围
因为函数调用需要开始索引和结束索引,修改 httpc_connection_t结构体,添加开始索引和结束索引。
调用函数,看运行效果。
5.查看效果
接收回调函数中,显示了接收到的长度为0x55 =85,设置的长度是[0,84],刚好85字节。
查看payload地址数据,确实是测试的文件前85字节