本文主要是介绍windows winhttp的编程例子,但是头文件和库文件,我的机子环境上没有,只有下载了头文件和库文件后才可以使用。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这是windows winhttp的编程例子,但是头文件和库文件,我的机子环境上没有,只有下载了头文件和库文件后才可以使用。
暂时先放置不管,作为记录,以后有精力再进行研究
#pragma onceclass CMyHttp
{
public:CMyHttp(void);
public:~CMyHttp(void);
};#include "StdAfx.h"
#include "MyHttp.h"#include <iostream>
#include <windows.h>
#include <WinHttp.h>
#pragma comment(lib, "WinHttp.lib")using namespace std;CMyHttp::CMyHttp(void)
{DWORD dwSize = 0;DWORD dwDownloaded = 0;LPSTR pszOutBuffer;BOOL bResults = FALSE;HINTERNET hSession = NULL, hConnect = NULL,hRequest = NULL;// Use WinHttpOpen to obtain a session handle.hSession = WinHttpOpen( L"WinHTTP Example/1.0", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);// Specify an HTTP server.if (hSession)hConnect = WinHttpConnect( hSession, L"www.microsoft.com",INTERNET_DEFAULT_HTTPS_PORT, 0);// Create an HTTP request handle.if (hConnect)hRequest = WinHttpOpenRequest( hConnect, L"GET", NULL,NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE);// Send a request.if (hRequest)bResults = WinHttpSendRequest( hRequest,WINHTTP_NO_ADDITIONAL_HEADERS, 0,WINHTTP_NO_REQUEST_DATA, 0, 0, 0);// End the request.if (bResults)bResults = WinHttpReceiveResponse( hRequest, NULL);// Continue to verify data until there is nothing left.if (bResults)do {// Verify available data.dwSize = 0;if (!WinHttpQueryDataAvailable( hRequest, &dwSize))printf("Error %u in WinHttpQueryDataAvailable.\n",GetLastError());// Allocate space for the buffer.pszOutBuffer = new char[dwSize+1];if (!pszOutBuffer){printf("Out of memory\n");dwSize=0;}else{// Read the Data.ZeroMemory(pszOutBuffer, dwSize+1);if (!WinHttpReadData( hRequest, (LPVOID)pszOutBuffer, dwSize, &dwDownloaded))printf("Error %u in WinHttpReadData.\n", GetLastError());elsecout << pszOutBuffer;// Free the memory allocated to the buffer.delete [] pszOutBuffer;}} while (dwSize>0);// Report any errors.if (!bResults)printf("Error %d has occurred.\n",GetLastError());// Close open handles.if (hRequest) WinHttpCloseHandle(hRequest);if (hConnect) WinHttpCloseHandle(hConnect);if (hSession) WinHttpCloseHandle(hSession);
}CMyHttp::~CMyHttp(void)
{
}
这篇关于windows winhttp的编程例子,但是头文件和库文件,我的机子环境上没有,只有下载了头文件和库文件后才可以使用。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!