当WinInet接受到一个有“Transfer-Encoding: chunked”头域的http后,怎么直接获取该http包实体的长度?而不是读取数据后才得到实体长度。有“Transfer-Encoding: chunked”头域的http包,没有“content-length”域。
解决方案 »
- 为什么DataGrid绑定的是CDatagrid1类型,而不是CDataGrid
- 急!怎么用完成端口创建长连接socket?
- 使用waveInXXX函数遇到的问题?!?!?
- 求解Winpcap编程中的一个问题
- 求助一个XP风格的对话框界面,有人愿意给我一个的demo吗,一定有分!
- 如何让程序支持ADDIN功能?
- 编程获得绑定的mac地址
- [求助]smallicon 样式 CListCtrl 虚拟列表如何设置图标的间距
- 请教各位,做一个子弹穿过物体的二维过程图的话用opengl可以不?
- RichEditCtrl中显示汉字问题
- vs2005 生成的DLL如何调用 呢
- 对话框资源怎么在新的程序中使用?
先取得chunk的标题:正文数量+空格+数量单位(一般省略)+CRLF(=='\r\n')
一般正文数量就是chunk的正文的长度(因为数量单位一般都是省略掉)
注意正文数量是16进制的,用strtol(16进制字符串,NULL,16)就可以转换然后根据取得的长度读取chunk的正文// 循环知道正文长度为0注意点: 按正文数量读取正文后,并不马上就是下个chunk的标题,会有一个 CRLF全部chunk读完以后,后面可能会有footer(一般情况下是空行)
如果你Connection: Keep-Alive来多次连续发请求并读取数据的话,footer处理需要考虑进去
如果是每一次请求都是重新建立连接的话,可以忽略
如果用 WININET,这些需要自己关心吗?WININET应该帮你做了