mark一下!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
#include <windows.h> #include <WinInet.h> #include <string> using namespace std; #pragma comment(lib,"wininet.lib") char* GetUrl2(const char* strName,char* strObject) { HINTERNET hSession = ::InternetOpen("MSDN SurfBear", PRE_CONFIG_INTERNET_ACCESS, NULL, INTERNET_INVALID_PORT_NUMBER, 0) ; // Connect to www.microsoft.com. HINTERNET hConnect = ::InternetConnect(hSession, strName, INTERNET_INVALID_PORT_NUMBER, "", "", INTERNET_SERVICE_HTTP, 0, 0) ; // Request the file /MSDN/MSDNINFO/ from the server. HINTERNET hHttpFile = ::HttpOpenRequest(hConnect, "GET", strObject, HTTP_VERSION, NULL, 0, INTERNET_FLAG_DONT_CACHE, 1); // Send the request. BOOL bSendRequest = ::HttpSendRequest(hHttpFile, NULL, 0, 0, 0); // Get the length of the file. char bufQuery[32] ; DWORD dwLengthBufQuery = sizeof(bufQuery); BOOL bQuery = ::HttpQueryInfo(hHttpFile, HTTP_QUERY_CONTENT_LENGTH,bufQuery,&dwLengthBufQuery,NULL) ; // Convert length from ASCII string to a DWORD. DWORD dwFileSize = (DWORD)atol(bufQuery) ; if (dwFileSize <= 2) { return 0; } // Allocate a buffer for the file. char* buffer = new char[dwFileSize+1] ; ZeroMemory(buffer,0,sizeof(buffer)); // Read the file into the buffer. DWORD dwBytesRead ; BOOL bRead = ::InternetReadFile(hHttpFile, buffer, dwFileSize+1, &dwBytesRead); // Put a zero on the end of the buffer. buffer[dwBytesRead] = 0 ; return buffer; } |
调用 GetUrl2("www.hao123.com","/task.asp?uid=123");
转载请注明:exchen's blog » winnet api 实现Get请求