• WinInet简介及操作流程


    我们这里主要要实现的功能是通过输入用户名和密码登录网站并读取网页内容:

    调用的库为WinInet.h

    用到工具fiddler抓包工具。

    1. 先抓包获取所需参数。
      • 登录网站https://www.oschina.net/,登录,并输入密码和用户名;
      • 打开fiddler工具
      • 点击登录网页,开始抓包参数;
      • 参数如下:
      • 完成抓包。
    2. HINTERNET hInternet;
      HINTERNET hConnect;
      HINTERNET hRequest;

      创建句柄;

    3. 初始化一个应用程序 hInternet = InternetOpen(_T("Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0""),INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0); 这里用户代理参数是:user agent:后面一串字符串;
    4. 设置internet连接句柄
      hConnect = InternetConnect(hInternet,_T("oschina.net"),INTERNET_DEFAULT_HTTPS_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,1);

       oschina.net 是host,注意没有“www.” 部分https端口为443,http为80.

    5. 设置请求报文
      hRequest = HttpOpenRequest(hConnect,_T("POST"),_T("/action/user/hash_login"),_T("HTTP/1.1"),_T("https://www.oschina.net/home/login?goto_page=http%3A%2F%2Fwww.oschina.net%2Fcode%2Fsnippet_1160014_23246"),lNULL,INTERNET_FLAG_RELOAD,0);

      第五个参数为Referer值

    6. 向http服务器发送请求:
      bSendResult = HttpSendRequest(hRequest,_T("Content-Type: application/x-www-form-urlencoded; charset=UTF-8
      "),-1,pBuff,strlen(Buf);

      其中Buf为cookie参数,邮箱与登录密码等信息,在Raw可以查看得到

      email=xxxxxxxxxx&pwd=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&verifyCode=7bda&save_login=1&google_code=03AGdBq27D6UGJocNmdX-MTtLFIgzBZt-TLtThZchpRck-kg8JVyRzSPp8l0TX9QstJQ-T6d3CilfniziJNZYK2tj_0C482CP6h4tYSYzhD4TRKKify6RuS_s_1P92bQYsRegyML51wRVYROplk0dAE2XGuaO900zJG0mTnXFccXOeQy4qsFsE1slK9va6aES4amIgf62Xy_thtFw5PGvl4meJ_aV7Du2nnGYgR4z9F_AQMz7Hh0H_cN7ug9CziIXkX3kcTTG8XG-vyBGWYPJl1WqGE5z1J5urTzFnNjF4leFEoSV20x4thz3v8hYhhn695424KrNGdcsrq5-tJK7eV9OAU1ZHsCGNKyL-fKOlQLbAVmdjKGbQqgYz5uSmPXm-34YM7DhOaZXLlwIrTAM-1cYOfSAiPYXYSQ

      至此,我们就通过用户名和密码登录了网站。

    7. 读取网页数据 BOOL reslut = HttpQueryInfo(hResourceHandle,HTTP_QUERY_RAW_HEADERS_CRLF,Buff,&dwInfoBufferLength,NULL); Buff为存放网页数据,dwInfoBufferLength为读取字节数目。

    谢谢!

    End.

  • 相关阅读:
    Web 性能优化
    js 校验身份证
    html5 输入框响应enter按键
    获取浏览器的可视窗口宽高
    js打开新标签
    Java数据脱敏框架
    Spring Boot中的事务管理
    运维监控知识体系
    git常用命令图解 & 常见错误
    安全团队不可错过的七个云安全开源工具(转载)
  • 原文地址:https://www.cnblogs.com/lumao1122-Milolu/p/13031745.html
Copyright © 2020-2023  润新知