• 关联函数-web_save_param_length


    int web_save_param_length(const char * Param,const char * Base,LAST);

    参数说明:
    
    Param:保存长度的参数的名称。
    
    Base:参数中的长度的表示。 基于是Decimal or Hexadecimal(十进制或十六进制之一)

    具体使用参考搜狗浏览器下载脚本

    Action()
    {
         int flen;        //定义一个整型变量保存获得文件的大小
         long filedes;    //保存文件句柄
         char file[256]="";  //保存文件路径及文件名
         char * chNumber ;
         int time;
         long lfbody;
    
         web_set_max_html_param_len("80000000");    //设置页面接收最大的字节数,该设置应大于下载文件的大小
         // lr_rendezvous("下载");     67472237
         web_concurrent_start(NULL);//并发开始
    
         web_reg_save_param("filecontent","LB=","RB=","Search=BODY",LAST);  //使用关联函数获取下载文件的内容
         
        
    
         web_url("sougou_browser",
             "URL=https://dlie.sogoucdn.com/se/sogou_explorer_8.6_1120.exe",//下载链接
             "Resource=1",
             "RecContentType=application/force-download",
             "Referer=",
             LAST);
         
         web_concurrent_end(NULL); //并发结束
    
         web_save_param_length("filecontent", "Base=Decimal", LAST);
         flen = atoi(lr_eval_string("{filecontent_Length}"));
         //flen =web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE); //获得下载文件大小
    
         lr_output_message("下载文件大小是%d",flen);
    
         time=web_get_int_property (HTTP_INFO_DOWNLOAD_TIME);
    
         lr_output_message("下载时间是%d",time);
    
         chNumber="sougoubrowser";  //生成随机数
    
         strcat(file,"F:\");//将下载文件要保存的路径存到android里
         strcat(file,chNumber);//在文件名后自动生成随机数
         strcat(file,".exe");//下载的文件后缀名称
    
        if(flen > 0) { 
        //以写方式打开文件 
        if((lfbody = fopen(file,"wb")) == NULL) { 
        lr_output_message("文件操作失败!"); 
        return -1; 
        } 
    
        //写入文件内容 
        fwrite(lr_eval_string("{filecontent}"),flen,1,lfbody); 
    
        //关闭文件 
        fclose(lfbody); 
        } 
    
        return 0; 
    
    } 
    Action()
    {
        web_reg_save_param("A",
                           "LB=[bnum++]="",
                           "RB=";",
                           "ORD=ALL",
                           LAST);
    
        web_url("test",
                "URL=http://localhost/test.html",
                "Resource=0", 
                "Referer=", 
                "Snapshot=t1.inf", 
                "Mode=HTML",
                LAST);
    
       lr_output_message("%s",lr_eval_string("{A_2}"));
       lr_output_message("%s",lr_eval_string("{A_count}"));
       web_save_param_length("A_2", "Base=Hexadecimal", LAST); 
       web_save_timestamp_param("tStamp", LAST);
       lr_output_message("%s",lr_eval_string("{tStamp}"));
    
        return 0;
    }
    
    执行结果为:
    
      Action.c(19): Notify: Saving Parameter "A_2_Length = 8"
    
      Action.c(20): Notify: Saving Parameter "tStamp = 1341454346975"
    
      分别获得了A_2 的长度和时间戳
     
  • 相关阅读:
    基于python内置方法进行代码混淆
    python-__getattr__ 和 __getattribute__
    python-flask学习
    python-创建进程的三种方式
    python-property、__get__、__set__
    call apply bind
    【算法】js实现最短时间走完不同速度的路程
    图片懒加载实现
    MoonLight可视化订单需求区域分析系统前端
    前端代码基本命名规范和格式规范
  • 原文地址:https://www.cnblogs.com/lvchengda/p/12625537.html
Copyright © 2020-2023  润新知