用WinINet API获取网页源代码

来源:互联网 发布:淘宝售后评价 编辑:程序博客网 时间:2024/06/06 06:53
#include <stdio.h>#include <windows.h>   #include <wininet.h>#pragma comment(lib, "wininet.lib")BOOL HttpDump(const char *lpszServerName, int iPort, const char *lpszObjectName){char cBuf[2048];DWORD dwRead;HINTERNET hINet = NULL, hConnection = NULL, hRequest = NULL;__try{hINet = InternetOpen("HttpDump/1.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);if(NULL == hINet){printf("InternetOpen Failed. Error Code: %d\n", GetLastError());return FALSE;}hConnection = InternetConnect(hINet, lpszServerName, iPort, " "," ", INTERNET_SERVICE_HTTP, 0, 0);if(NULL == hConnection ){printf("InternetConnect Failed. Error Code: %d\n", GetLastError());return FALSE;}hRequest = HttpOpenRequest(hConnection, "GET", lpszObjectName, NULL, NULL, NULL, INTERNET_FLAG_KEEP_CONNECTION, 0 );if(NULL == hRequest){printf("HttpOpenRequest Failed. Error Code: %d\n", GetLastError());return FALSE;}if(!HttpSendRequest(hRequest, NULL, 0, NULL, 0)){printf("HttpSendRequest Failed. Error Code: %d\n", GetLastError());return FALSE;}printf("Dump:\n");do{if(!InternetReadFile(hRequest, cBuf, sizeof(cBuf)-1, &dwRead)){printf("InternetReadFile Failed. Error Code: %d\n", GetLastError());return FALSE;}else{if(dwRead == 0){break;}else{cBuf[dwRead] = 0;printf("%s", cBuf);}}}while(TRUE);printf("\nEnd Dump\n");return TRUE;}__finally  {if(hRequest){InternetCloseHandle(hRequest);}if(hINet){InternetCloseHandle(hINet);}if(hConnection){InternetCloseHandle(hConnection);}}return FALSE;}int main(int argc, char* argv[]){if(HttpDump("www.baidu.com", 80, "")){printf("HttpDump OK\n");}else{printf("HttpDump Failed\n");}}


 

原创粉丝点击