使用wininet下载一个网页

WinInet基础知识 | Microsoft Learn

//this code excerpt also demonstrates try/catch exception handling

#include <afxinet.h>

void DisplayHttpPage(LPCTSTR pszServerName, LPCTSTR pszFileName)

{

CInternetSession session(_T("My Session")); //用于建立一个网络连接

CHttpConnection* pServer = NULL; //用于管理上面建立的网络连接

CHttpFile* pFile = NULL; //用于读取或者储存文件包括本地

try

{

CString strServerName;

INTERNET_PORT nPort = 80;

DWORD dwRet = 0;

pServer = session.GetHttpConnection(pszServerName, nPort); //这个就是常规用法即:

//CHttpConnectionObj=session.GetHttpConnection();

//后面这2个函数一起作用用于打开服务器上面的文件或者本地的文件

pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET, pszFileName);

pFile->SendRequest();

pFile->QueryInfoStatusCode(dwRet);

if (dwRet == HTTP_STATUS_OK)

{

CHAR szBuff[1024];

while (pFile->Read(szBuff, 1024) > 0)

{

printf_s("%1023s", szBuff);

}

}

delete pFile;

delete pServer;

}

catch (CInternetException* pEx)

{

//catch errors from WinInet

TCHAR pszError[64];

pEx->GetErrorMessage(pszError, 64);

_tprintf_s(_T("%63s"), pszError);

}

session.Close();

}

相关推荐
寻寻觅觅☆9 分钟前
东华OJ-基础题-30-求最晚和最早日期(C++)
数据结构·c++·算法
Lugas Luo13 分钟前
SATA 硬盘识别延时:协议层与内核机制分析
linux·嵌入式硬件
somi713 分钟前
ARM-10-I.MX6U ADC
arm开发·嵌入式硬件·adc·自用
_Twink1e1 小时前
[算法竞赛]九、C++标准模板库STL常用容器大全
开发语言·c++
nfsf1 小时前
【ZMCT103C电流互感器应用原理图 交流电流】
嵌入式硬件
进击的小头1 小时前
01_第一篇:到底什么是嵌入式芯片?与通用CPU_GPU_DSP的核心区别
单片机·嵌入式硬件
bu_shuo1 小时前
c++中对数组求和
开发语言·c++
elseif1232 小时前
【Markdown】指南(上)
linux·开发语言·前端·javascript·c++·笔记
星辰徐哥2 小时前
C++网络编程:TCP服务器与客户端的实现
网络·c++·tcp/ip
·心猿意码·2 小时前
C++ volatile 与 std::atomic 底层语义剖析
c++