如何优雅的写C++代码 Obotcha介绍(Http Multi Part)

    之前几天写过一个http chunk传输的实现,这个主要是用来给服务器下发文件用的。今天介绍的HttpMultiPart主要是用来给客户端上传文件的。个人刚刚接触服务器,不了解是否还有其他方法上传文件,只找到MultiPart这个方法,所以就先实现这个功能再说。先来看一下MultiPart传输的格式:

//--------WebKitFormBoundaryrGKCBY7qhFd3TrwA =>--boundary
//Content-Disposition: form-data;name="text"
//
//title
//--------WebKitFormBoundaryrGKCBY7qhFd3TrwA
//Content-Disposition: form-data;name="file";filename="chrome.png"
//Content-Type: image/png
//PNG ..... content of chrome.png .....
//--------WebKitFormBoundaryrGKCBY7qhFd3TrwA--

1.------WebKitFormBoundaryrGKCBY7qhFd3TrwA这个是boundary,通过Http的Content-Type头会传输一个boundary=xxxx的数据。xxx就是------WebKitFormBoundaryrGKCBY7qhFd3TrwA。boudary标示了一段数据的开始。

2.Content-Disposition标示的是这段数据的属性,一般我们关注的就是name。接下来就是这段数据。

3.文件的传输需要有一个Content-Type来标示文件类型。接下来就是文件数据。

4.--------WebKitFormBoundaryrGKCBY7qhFd3TrwA--标示multipart数据结束。

由于http协议文本协议,所以我们解析的时候需要逐个字符检测,非常耗时。但是也没找到什么好方法。 暂时先凑活着干把。

Obotcha解析MultiPart的代码主要集中在:

https://github.com/wangsun1983/Obotcha/blob/master/net/http/HttpMultiPartParser.cpp

的HttpMultiPart _HttpMultiPartParser::parse(ByteRingArrayReader reader)中。

由于是纯文本解析,比较简单。这里就不啰嗦了。

 

哈哈。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值