首页 / 操作系统 / Linux / 使用CHttpFile从服务器端正确的读取数据
前段时间在给软件做升级提示模块的时候发现一个问题,就是使用CHttpFile对象无法从服务器端获取到正确的响应数据长度,无论是使用CHttpFile:: QueryInfo方法,还是使用CHttpFile:: GetLength方法,每次获取的长度都不固定,造成读取数据错误。万般无奈,最后只能采用动态数组的办法来解决这个问题,代码如下:#define READ_BUFFER_LENGTH 1024#define PAGE_BUFFER_SIZE 1024*4 char* CHttpClient::ReadData( CHttpFile* pFile ){ char* pUtf8 = (char*)malloc(PAGE_BUFFER_SIZE); UINT bufLen = PAGE_BUFFER_SIZE; UINT recLen = 0; UINT recSize = 0; char* pDest = pUtf8; while ((recLen = pFile->Read(pDest, READ_BUFFER_LENGTH)) > 0) { recSize += recLen; if(recSize + READ_BUFFER_LENGTH > bufLen) { bufLen += PAGE_BUFFER_SIZE; pUtf8 = (char*)realloc(pUtf8,bufLen); pDest = pUtf8 + recSize; } else { pDest += recLen; } } pUtf8[recSize] = " "; return pUtf8;}本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-06/132426.htm