- char* CJunnXML::UTF8toANSI(char *pszCode)
- {
- BSTR bstrWide;
- char* pszAnsi;
- int nLength;
- // Get nLength of the Wide Char buffer
- nLength = MultiByteToWideChar(CP_UTF8, 0, pszCode, lstrlen(pszCode) + 1,NULL, NULL);
- bstrWide = SysAllocStringLen(NULL, nLength);
- // Change UTF-8 to Unicode (UTF-16)
- MultiByteToWideChar(CP_UTF8, 0, pszCode, lstrlen(pszCode) + 1, bstrWide,nLength);
- // Get nLength of the multi byte buffer
- nLength = WideCharToMultiByte(CP_ACP, 0, bstrWide, -1, NULL, 0, NULL, NULL);
- pszAnsi = new char[nLength];
- // Change from unicode to mult byte
- WideCharToMultiByte(CP_ACP, 0, bstrWide, -1, pszAnsi, nLength, NULL, NULL);
- SysFreeString(bstrWide);
- return pszAnsi;
- }
- fileName.Format("%s\\%s_%d.xml",strDate,strCode,iFile);
- // HTML 파일 열기
- openstat = HTMLFile.Open(fileName, CFile::modeRead) ;
- // 파일의 크기 보관
- HTMLFileLength = HTMLFile.GetLength();
- // 파일의 크기 만큼 버퍼 생성
- HTMLDataBuffer = new char[HTMLFileLength];
- // 파일의 내용을 버퍼로 복사
- HTMLFile.Read(HTMLDataBuffer, sizeof(char) * HTMLFileLength);
- HTMLFile.Close();
- str.Empty();
- str.Insert(0,this->UTF8toANSI(HTMLDataBuffer));
- free(HTMLDataBuffer);
bool RetrievePage::GetPage(CString sURL, CString& sBody)
{
sURL.TrimLeft();
sURL.TrimRight();
char *location;
char pagina[100000];
LPTSTR ppp = sURL.GetBuffer(sURL.GetLength());
location = ppp;
if (strnicmp(location, "http://",7)==0)
{ - //Mozilla/4.0 (compatible; MSIE 7.0; Win32)
// IE 7.0 userAgent 입니다. - //HINTERNET internet=InternetOpen("Daemon", INTERNET_OPEN_TYPE_PRECONFIG , NULL, NULL, NULL);
HINTERNET internet=InternetOpen("Mozilla/4.0 (compatible; MSIE 7.0; Win32)", INTERNET_OPEN_TYPE_PRECONFIG , NULL, NULL, NULL);
if (internet)
{
/*
HINTERNET file_handle=InternetOpenUrl(internet,
location, NULL, 0,
INTERNET_FLAG_KEEP_CONNECTION & INTERNET_FLAG_DONT_CACHE & INTERNET_FLAG_RELOAD, 0);
*/ - HINTERNET file_handle=InternetOpenUrl(internet,location, NULL, 0, INTERNET_FLAG_RELOAD, 0);
- if (file_handle)
{
DWORD bytes_read=0;
//Beep(200, 200);
InternetReadFile(file_handle, pagina, 100000, &bytes_read);
- //in pagina am &bytes_read bytes de pe internet
//tre sa bag pagina in sBody
/*FILE *fp;
if ((fp=fopen("C:\\HTTPFILE.TXT","wb")) !=NULL)
{
fwrite(pagina, bytes_read, 1, fp);
fclose(fp);
}*/
sBody.Empty();
//str.Insert(0,this->UTF8toANSI(HTMLDataBuffer));
sBody.Insert(0,this->UTF8ToANSI(( pagina)));
//sBody = CString ( pagina);
//sBody = sBody.Left(bytes_read); - //str.Empty();
//str.Insert(0,this->UTF8toANSI(HTMLDataBuffer));
- long lll= sBody.GetLength();
- //Sleep(0);
//AfxMessageBox("GetPage: "+ sURL + " "+ sBody);
}
else
{
m_sError = "Is not possible to connect to internet";
return FALSE;
}
}
else
{
m_sError = "The sURL location must contain 'http://' string";
return FALSE;
}
InternetCloseHandle(internet);
}
return true;
}