使用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();

}

相关推荐
6Hzlia9 分钟前
【Hot 100 刷题计划】 LeetCode 215. 数组中的第K个最大元素 | C++ 快速选择与堆排序题解
c++·算法·leetcode
「QT(C++)开发工程师」29 分钟前
C++17三大实用特性详解:内联变量、std::optional、std::variant
jvm·c++
小手智联老徐36 分钟前
ROS2:与 Gazebo 版本对应关系解析
机器人·ros2·gazebo
不爱吃炸鸡柳37 分钟前
C++ STL 核心:string 从入门到精通(面试+源码+OJ实战)
java·c++·面试
南境十里·墨染春水39 分钟前
C++笔记 Lambda表达式
开发语言·c++·笔记
悟渔41 分钟前
用于STM32的C++编程的LED对象
c++·stm32·单片机
yongui478341 小时前
基于STM32+W5500的IAP远程升级程序设计
stm32·单片机·嵌入式硬件
LCG元1 小时前
STM32实战:基于STM32CubeMX的串口通信(UART)与DMA传输优化
stm32·单片机·嵌入式硬件
17(无规则自律)1 小时前
DFS:带重复项的全排列,程序运行全流程解析
c++·算法·深度优先
qq_150841991 小时前
用Simplicity Studio开发EFM8单片机(续)
单片机·嵌入式硬件