编程论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

C++通过http下载二进制文件

[复制链接]
  • ta_mind
    擦汗
    2016-3-2 13:17
  • classn_01: 5 classn_02

    [LV.2]偶尔看看I

    636

    主题

    646

    帖子

    715

    积分

    高级会员

    Rank: 4

    积分
    715
    发表于 2016-7-18 23:26:35 | 显示全部楼层 |阅读模式
    [C++] syntaxhighlighter_viewsource syntaxhighlighter_copycode
    #include <stdio.h>
    #include <windows.h>
    #include <wininet.h>
    #define MAXBLOCKSIZE 1024
    
    void download(const char*);
    
    int main(int argc, char* argv[]){
     if(argc > 1){
      download((const char*)argv[1]);
     }else{
      printf("Usage: auto-Update url");
     }
     return 0;
    }
    
    
    /**
     * 执行 文件下载 操作
     * @param Url: The target action url 
     *
     */
    void download(const char *Url)
    {
     HINTERNET hSession = InternetOpen("RookIE/1.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
     if (hSession != NULL)
     {
      HINTERNET handle2 = InternetOpenUrl(hSession, Url, NULL, 0, INTERNET_FLAG_DONT_CACHE, 0);
      if (handle2 != NULL)
      {
       printf("%s/n",Url);
       byte Temp[MAXBLOCKSIZE];
       ULONG Number = 1;
    
       FILE *stream;
       if( (stream = fopen( "F://LeadBridge//new.exe", "wb" )) != NULL )//这里只是个测试,因此写了个死的文件路径
       {
        while (Number > 0)
        {
         InternetReadFile(handle2, Temp, MAXBLOCKSIZE - 1, &Number);
         //fprintf(stream, (const char*)Temp);
         fwrite(Temp, sizeof (char), Number , stream);
        }
        fclose( stream );
       }
       
       InternetCloseHandle(handle2);
       handle2 = NULL;
      }
      InternetCloseHandle(hSession);
      hSession = NULL;
     }
    }
    
     




    上一篇:vc++获取当前使用IE的URL路径并自动打印出相应的网址
    下一篇:利用C语言实现POST数据包如此简单【模拟网页提交表单】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|Archiver|小黑屋|sitemap|编程论坛 - 一个单纯的编程学习交流论坛 ( 豫ICP备15032706号-2 )

    GMT+8, 2017-10-20 13:18 , Processed in 0.151555 second(s), 34 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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