取得したデータは、std::string型で渡されます。
#include <windows.h>
#include <wininet.h>
#include <string>
int HttpGet(std::string& result,const char* url,const char* appname) {
HINTERNET hinet,hurl;
HANDLE hheap;
char buf[10241];
DWORD read;
int total=0;
int startpos;
hinet=InternetOpen(appname,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
if(hinet==NULL)return 0;
hurl=InternetOpenUrl(hinet,url,NULL,0,0,0);
if(hurl==NULL) {
InternetCloseHandle(hinet);
return 0;
}
hheap=HeapCreate(0,102400,0);
if(hheap==NULL) {
InternetCloseHandle(hinet);
InternetCloseHandle(hurl);
return 0;
}
result="";
while(1) {
InternetReadFile(hurl,buf,sizeof(buf)-1,&read);
buf[read]=0;
if(read==0)break;
total+=read;
result+=buf;
}
InternetCloseHandle(hinet);
InternetCloseHandle(hurl);
return 1;
}
urlに取得するURLを指定します。
appnameにアプリケーション名を指定します。(任意の文字列で構いません)