从零开始学编程

 找回密码
 立即注册

QQ登录

只需一步,快速开始

界面工厂编程视频教程广告联系qq1031180668广告位
查看: 1009|回复: 11

winhttp GET方式获取网页源码

[复制链接]
  • ta_mind

    2016-10-1 18:52
  • classn_01: 64 classn_02

    [LV.6]常住居民II

    790

    主题

    1497

    帖子

    2652

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    2652

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    发表于 2016-1-13 12:09:24 | 显示全部楼层 |阅读模式
    winhttp已经生成了类了,那么怎样利用winhttp获取网页源码呢?
    下面是调用winhhtp获取网页源码的具体步骤:
    1.COM组件初始化的
    2.定义winhttp对象指针
    3.创建并实例化winhttp组件

    4.调用winhhtp的Open方法打开连接
    5.调用Send方法发送请求
    6.获取ResponseText返回的文本

    7.释放Winhttp组件对象
    8.释放Winhttp对象指针
    9.卸载COM组件
    知道了步骤咱们就简单设计一个获取网页源码的程序:

    首先设计下程序的界面:

    2345截图20160113112024.png
    两个Static标签,两个Edit  Control,一个Button,第二个Edit Control的Multiline(多行)属性设置为True。

    程序效果:
    在第一个Edit Control输入网址,点击确定,在第二个Edit Control显示网页源码。
    界面设计好了,按照winhhtp获取网页源码的步骤来,
    在按钮事件的函数中,1.
    首先初始化COM组件 :
    CoInitialize(NULL);//初始化COM组件
    定义winhttp对象指针
    CWinHttpRequest *pHttpReq = new CWinHttpRequest();//CWinHttpRequest是winhttp生成包装类的头文件,需要在源码中加入头文件#include "CWinHttpRequest.h"才能使用
    创建并实例化winhttp组件:
    BOOL bRet=pHttpReq->CreateDispatch(_T("WinHttp.WinHttpRequest.5.1"));//调用CWinHttpRequest类的CreateDispatch方法创建
    if (!bRet) return;//判断一下,创建失败就就返回
    调用winhhtp的Open方法打开连接:
    首先看下OPen有三个参数,第一个是打开连接的方式 比如 POST或GET
    第二个是打开的URL
    第三个是VARIANT类型的参数,决定打开连接用同步或异步
    由于VARIANT类型的参数赋值不方便,咱们用一个包装类COleVariant类做参数,
    COleVariant Async = VARIANT_FALSE;//设置为同步方式
    CString strUrl;
    GetDlgItemText(IDC_EDIT2,strUrl);//获得第一个Edit Control的内容,也就是网址

    pHttpReq->Open(_T("GET"),strUrl,Async);//Open方法打开连接
    调用Send方法发送请求:
    pHttpReq->Send(vtMissing);//参数可以省略,但是由于用的利用类型库生成包装类
    所以所有参数都不得省略,vtMissing  代表了发送的内容,包括协议头等等。
    获取ResponseText返回的文本:
    CString strRsp= pHttpReq->get_ResponseText();//简单的调用方法返回结果 没什么好说的
    SetDlgItemText(IDC_EDIT1,strRsp);//显示到第二个EDit Control

    释放Winhttp组件对象:
    pHttpReq->ReleaseDispatch();
    释放Winhttp对象指针
    delete pHttpReq;
    卸载COM组件
    CoUninitialize();

    完成后效果图:

    2345截图20160113115623.png

    完整源码下载地址:
    游客,如果您要查看本帖隐藏内容请回复







    上一篇:类型库生成包装类调用COM组件演示
    下一篇:vc++post图文教程
    不积跬步,无以至千里
  • ta_mind
    开心
    2016-4-7 14:45
  • classn_01: 12 classn_02

    [LV.3]偶尔看看II

    5

    主题

    38

    帖子

    111

    积分

    注册会员

    Rank: 2

    积分
    111
    发表于 2016-3-21 17:40:28 | 显示全部楼层
    感谢楼主分享
  • ta_mind

    2016-10-1 18:52
  • classn_01: 64 classn_02

    [LV.6]常住居民II

    790

    主题

    1497

    帖子

    2652

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    2652

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

     楼主| 发表于 2016-3-21 17:45:44 | 显示全部楼层
    不积跬步,无以至千里
  • ta_mind
    开心
    2016-4-7 14:45
  • classn_01: 12 classn_02

    [LV.3]偶尔看看II

    5

    主题

    38

    帖子

    111

    积分

    注册会员

    Rank: 2

    积分
    111
    发表于 2016-3-21 17:47:33 | 显示全部楼层

    多谢大神的教程  希望能出更多实用性的教程
  • ta_mind

    2016-10-1 18:52
  • classn_01: 64 classn_02

    [LV.6]常住居民II

    790

    主题

    1497

    帖子

    2652

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    2652

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

     楼主| 发表于 2016-3-21 17:51:10 | 显示全部楼层
    hj就好好干 发表于 2016-3-21 17:47
    多谢大神的教程  希望能出更多实用性的教程

    嗯嗯 网站会经常更新的
    不积跬步,无以至千里
  • ta_mind
    开心
    2016-4-28 10:47
  • classn_01: 1 classn_02

    [LV.1]初来乍到

    0

    主题

    29

    帖子

    73

    积分

    禁止发言

    积分
    73
    发表于 2016-4-28 11:45:16 | 显示全部楼层
    功能很强大 很喜欢
  • ta_mind
    难过
    2016-6-5 02:35
  • classn_01: 4 classn_02

    [LV.2]偶尔看看I

    39

    主题

    251

    帖子

    308

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    308
    发表于 2016-5-30 08:55:19 | 显示全部楼层
    楼主不如做个webqq机器人的项目放到论坛给大家学习!
  • ta_mind
    难过
    2016-6-5 02:35
  • classn_01: 4 classn_02

    [LV.2]偶尔看看I

    39

    主题

    251

    帖子

    308

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    308
    发表于 2016-5-30 08:56:25 | 显示全部楼层
    因为就算你不搞我也必须搞,pcqq,androidqq难度大的多了所以不考虑
    楼主出个视频吧
  • ta_mind
    开心
    2016-8-13 19:11
  • classn_01: 1 classn_02

    [LV.1]初来乍到

    0

    主题

    6

    帖子

    28

    积分

    新手上路

    Rank: 1

    积分
    28
    发表于 2016-8-15 17:55:13 | 显示全部楼层
    感谢楼主分享

    classn_11

    0

    主题

    2

    帖子

    4

    积分

    新手上路

    Rank: 1

    积分
    4
    发表于 2016-8-27 20:12:01 | 显示全部楼层
    666666666666666666
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Archiver|小黑屋|sitemap|从零开始学编程 ( 豫ICP备15032706号-2 )

    GMT+8, 2017-5-24 23:33 , Processed in 0.109375 second(s), 38 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表