歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 使用CHttpFile從服務器端正確的讀取數據

使用CHttpFile從服務器端正確的讀取數據

日期:2017/3/1 9:14:51   编辑:Linux編程

前段時間在給軟件做升級提示模塊的時候發現一個問題,就是使用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] = '\0';

return pUtf8;

}

Copyright © Linux教程網 All Rights Reserved