1
在做一個GET(REST)和使用的InternetReadFile API來讀取響應它是一個XML,當反應較小,但在響應更多的則是10KB的InternetReadFile,其間垃圾字符返回數據,它工作正常或者它會刪除一部分數據。當我嘗試重新構建由於垃圾字符的存在或由於缺乏某些部分而導致的XML的響應將被破壞時。的InternetReadFile返回損壞的響應
如果我使用招再進行同樣的GET調用我得到適當的反應。
這裏是代碼片段
m_internetsession = InternetOpen("RestToolkit",INTERNET_OPEN_TYPE_PRECONFIG ,NULL,NULL,0);
if(m_internetsession == NULL)
{
throw new exception ("InternetOpen call failed");
}
m_connection = InternetConnect(m_internetsession,m_uri.Gethost().c_str(),(INTERNET_PORT)m_uri.Getport(),"", "", INTERNET_SERVICE_HTTP, 0, 0);
HINTERNET請求= HttpOpenRequest中(m_connection,m_method.c_str(),m_uri.Getrelativepath()c_str(),NULL,NULL,NULL,0,0);
讀響應:
#define HTTP_BUFFER_LENGTH 1024
if(response.empty())
{
CHAR szBuff[HTTP_BUFFER_LENGTH+1];
memset(szBuff,0x00,sizeof(szBuff));
DWORD bytesRead;
while (InternetReadFile(request,szBuff, HTTP_BUFFER_LENGTH,&bytesRead) == TRUE && bytesRead > 0)
{
response.append(szBuff);
memset(szBuff,0x00,sizeof(szBuff));
}
}
我到底做錯了什麼?
感謝 JeeL
謝謝。感謝您突出顯示錯誤:) – JeeZ 2009-12-09 12:01:28
不客氣! :) – atzz 2009-12-09 12:31:17