调试http download 问题总结


1 构造http 请求报文,存放的buff长度可以为1024B.主要根据构造报文的复杂程度。

2 connect函数一直显示返回连接失败 但是明明能够返回http应答。检查之后发现,if判断后面加上;导致判断失效
if(connect(socket_fd, (struct sockaddr*)&servaddr, sizeof(servaddr)) == -1);
    {
        printf("connect servaddr failed ,%s\n",strerror(errno));
        return -1;
    }
3 在接收到http的响应之后,解析出response的长度,
下载文件,但是文件下载之后发现m3u8文件已经出现了#EXT-X-ENDLIST后仍然有重复的文件url出现,
经过分析之后发现ts url只有最后几个重复,怀疑是写文件的时候用的缓冲区有覆盖的情况,所以,
在每次写文件之后将接收buf进行memset。
测试发现问题已经解决。

4 http请求报文的构造,主要包含一下几个部分
主要包含:
请求行 请求方法+URI+版本  GET /urgent/a.zip HTTP/1.1\r\n
请求头 Accept host 等字段
请求数据 可以是key=value的形式
空行 \r\n 必须

response响应报文
状态行:版本号+状态码+响应描述 HTTP/1.1 200 OK
消息报头 
响应正文
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值