url解码

by:授客 QQ1033553122

脚本结构如下:

Action.c中的代码如下:

int htoi(char
*s)

{

int value = 0;

int c = 0;

c = ((unsigned char *)s)[0];

if (isupper(c))

{

c = tolower(c);

}

value = (c >= '0' && c <= '9' ? c - '0' : c - 'a' +
10) * 16;

c = ((unsigned char *)s)[1];

if (isupper(c))

{

c = tolower(c);

}

value += c >= '0' && c <= '9' ? c - '0' : c - 'a' +
10;

return (value);

}

void url_decode(char *str,
int len)

{

char *dest = str;

char *data = str;

char *dst = NULL;

dest = (char*)malloc(len + 1);

dst = dest;

while (len--)

{

if (*data == '+')

{

*dest = ' ';

}

else if (*data == '%' && len >= 2 &&

isxdigit((int) *(data +
1)) &&

isxdigit((int) *(data +
2)))

{

#ifndef CHARSET_EBCDIC

*dest
= (char)htoi(data + 1);

#else

*dest = os_toebcdic[(char) htoi(data + 1)];

#endif

data += 2;

len -= 2;

}

else

{

*dest = *data;

}

data++;

dest++;

}

*dest = '\0';

lr_output_message(dst);

free(dest);

dest = NULL;

dst = NULL;

}

const unsigned char
os_toebcdic[256] = {

0x00,  
0x01,  
0x02,  
0x03,  
0x37,  
0x2d,  
0x2e,  
0x2f,

0x16,  
0x05,  
0x15,  
0x0b,  
0x0c,  
0x0d,  
0x0e,  
0x0f,

0x10,  
0x11,  
0x12,  
0x13,  
0x3c,  
0x3d,  
0x32,  
0x26,

0x18,  
0x19,  
0x3f,  
0x27,  
0x1c,  
0x1d,  
0x1e,  
0x1f,

0x40,  
0x5a,  
0x7f,  
0x7b,  
0x5b,  
0x6c,  
0x50,  
0x7d,

0x4d,  
0x5d,  
0x5c,  
0x4e,  
0x6b,  
0x60,  
0x4b,  
0x61,

0xf0,  
0xf1,  
0xf2,  
0xf3,  
0xf4,  
0xf5,  
0xf6,  
0xf7,

0xf8,  
0xf9,  
0x7a,  
0x5e,  
0x4c,  
0x7e,  
0x6e,  
0x6f,

0x7c,  
0xc1,  
0xc2,  
0xc3,  
0xc4,  
0xc5,  
0xc6,  
0xc7,

0xc8,  
0xc9,  
0xd1,  
0xd2,  
0xd3,  
0xd4,  
0xd5,  
0xd6,

0xd7,  
0xd8,  
0xd9,  
0xe2,  
0xe3,  
0xe4,  
0xe5,  
0xe6,

0xe7,  
0xe8,  
0xe9,  
0xad,  
0xe0,  
0xbd,  
0x5f,  
0x6d,

0x79,  
0x81,  
0x82,  
0x83,  
0x84,  
0x85,  
0x86,  
0x87,

0x88,  
0x89,  
0x91,  
0x92,  
0x93,  
0x94,  
0x95,  
0x96,

0x97,  
0x98,  
0x99,  
0xa2,  
0xa3,  
0xa4,  
0xa5,  
0xa6,

0xa7,  
0xa8,  
0xa9,  
0xc0,  
0x4f,  
0xd0,  
0xa1,  
0x07,

0x20,  
0x21,  
0x22,  
0x23,  
0x24,  
0x04,  
0x06,  
0x08,

0x28,  
0x29,  
0x2a,  
0x2b,  
0x2c,  
0x09,  
0x0a,  
0x14,

0x30,  
0x31,  
0x25,  
0x33,  
0x34,  
0x35,  
0x36,  
0x17,

0x38,  
0x39,  
0x3a,  
0x3b,  
0x1a,  
0x1b,  
0x3e,  
0xff,

0x41,  
0xaa,  
0x4a,  
0xb1,  
0x9f,  
0xb2,  
0x6a,  
0xb5,

0xbb,  
0xb4,  
0x9a,  
0x8a,  
0xb0,  
0xca,  
0xaf,  
0xbc,

0x90,  
0x8f,  
0xea,  
0xfa,  
0xbe,  
0xa0,  
0xb6,  
0xb3,

0x9d,  
0xda,  
0x9b,  
0x8b,  
0xb7,  
0xb8,  
0xb9,  
0xab,

0x64,  
0x65,  
0x62,  
0x66,  
0x63,  
0x67,  
0x9e,  
0x68,

0x74,  
0x71,  
0x72,  
0x73,  
0x78,  
0x75,  
0x76,  
0x77,

0xac,  
0x69,  
0xed,  
0xee,  
0xeb,  
0xef,  
0xec,  
0xbf,

0x80,  
0xfd,  
0xfe,  
0xfb,  
0xfc,  
0xba,  
0xae,  
0x59,

0x44,  
0x45,  
0x42,  
0x46,  
0x43,  
0x47,  
0x9c,  
0x48,

0x54,  
0x51,  
0x52,  
0x53,  
0x58,  
0x55,  
0x56,  
0x57,

0x8c,  
0x49,  
0xcd,  
0xce,  
0xcb,  
0xcf,  
0xcc,  
0xe1,

0x70,  
0xdd,  
0xde,  
0xdb,  
0xdc,  
0x8d,  
0x8e,  
0xdf   
/* 
................
 
*/

};

Action()

{

int len = 0;

char *
Params="{"dataList":[{"accountId":"10002","customerScore":0,"isCommnet":0,"isDated":0,"";

len = strlen(Params);

url_decode(Params,len);

return 0;

}

输出结果:

可将输出结果同在线解码工具的输出做对比

http://tool.chinaz.com/Tools/URLEncode.aspx

注意:以上脚本仅适用于不含中文字符的url解码,中文解码存在以下问题

loadrunner 脚本开发-url解码的更多相关文章

  1. loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取

    转自:http://blog.sina.com.cn/s/blog_13cc013b50102v49c.html(查看原文) 在VuGen中默认使用{}的字符串称为参数 注意:参数必须在双引号中才能用 ...

  2. Loadrunner脚本开发规范

    Loadrunner脚本开发规范 目录 1.一般约定... 3 2.代码注释约定... 4 3.格式化代码... 5 1.一般约定 1.1具体脚本规则,必须在具体代码中加注释,以便脚本开发人员阅读和理 ...

  3. Loadrunner脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试

    脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试 by:授客 QQ:1033553122   目的 实现基于http协议的流媒体在线视频播放,服务器性能测试脚本,模拟用户浏览器方式在线播放 ...

  4. Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本

    脚本开发-利用Loadrunner生成Web service测试脚本 1.选择协议--Web Service,如下图 2.导入服务 入口1:点击Manage Services ->弹出窗中选择“ ...

  5. loadrunner 脚本开发-文件下载

    脚本开发-文件下载 by:授客 QQ:1033553122 下载简介 对 HTTP协议来说,无论是下载文件或者请求页面,对客户端来说,都只是发出一个GET请求,并不会记录点击后的“保存”.“另存为操作 ...

  6. loadrunner 脚本开发-基本知识

    脚本开发-基本知识 1)编码工具设置 自动补全输入Tools->General Options->Environment->Auto complete word 显示功能语法Tool ...

  7. Loadrunner 脚本开发-利用web_submit_data函数实现POST请求

    脚本开发-利用web_submit_data函数实现POST请求   by:授客 QQ:1033553122 概述 web_link()和web_url()函数都是页面访问型函数,实现HTTP请求中的 ...

  8. Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本

    脚本开发-利用loadrunner开发Windows Sockets协议脚本 by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 实践举例 Socket服务端简单实 ...

  9. Loadrunner 脚本开发-soap_request函数介绍及WebService接口测试

    脚本开发- soap_request函数介绍及WebService接口测试 by:授客 QQ:1033553122 函数介绍 soap_request 函数执行一个SOAP请求 函数原型 int so ...

随机推荐

  1. css 如何“画”一个抽奖转盘

    主要描述的是如何运用 css 绘制一个抽奖转盘,并运用原生 js 实现转盘抽奖效果. 先来张效果图: 布局 一般来说,转盘一般有四个部分组成:外层闪烁的灯.内层旋转的圆盘.圆盘上的中奖结果.指针. 所 ...

  2. Git - 基础介绍

    Git Git - HomePage Git - CHEAT SHEET 开源的分布式版本控制系统,用于敏捷高效地管理项目版本. 下载与安装Git https://git-scm.com/downlo ...

  3. LeetCode--No.008 String to Integer (atoi)

    8. String to Integer (atoi) Total Accepted: 112863 Total Submissions: 825433 Difficulty: Easy Implem ...

  4. [Objective-C语言教程]预处理器(18)

    Objective-C预处理器不是编译器的一部分,而是编译过程中的一个单独步骤. 简单来说,Objective-C预处理器只是一个文本替换工具,它指示编译器在实际编译之前进行必要的预处理. 我们将Ob ...

  5. Django--Session 操作

    Session Session的由来 Cookie虽然在一定程度上解决了“保持状态”的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取,因此就需要 ...

  6. list源码3(参考STL源码--侯捷):push_front、push_back、erase、pop_front、pop_back、clear、remove、unique

    list源码1(参考STL源码--侯捷):list节点.迭代器.数据结构 list源码2(参考STL源码--侯捷):constructor.push_back.insert list源码3(参考STL ...

  7. Java NIO中的缓冲区Buffer(二)创建/复制缓冲区

    创建缓冲区的方式 主要有以下两种方式创建缓冲区: 1.调用allocate方法 2.调用wrap方法 我们将以charBuffer为例,阐述各个方法的含义: allocate方法创建缓冲区 调用all ...

  8. Python爬取网易云歌单

    目录 1. 关键点 2. 效果图 3. 源代码 1. 关键点 使用单线程爬取,未登录,爬取网易云歌单主要有三个关键点: url为https://music.163.com/discover/playl ...

  9. 干货 | 请收下这份2018学习清单:150个最好的机器学习,NLP和Python教程

    机器学习的发展可以追溯到1959年,有着丰富的历史.这个领域也正在以前所未有的速度进化.在之前的一篇文章中,我们讨论过为什么通用人工智能领域即将要爆发.有兴趣入坑ML的小伙伴不要拖延了,时不我待! 在 ...

  10. DNS Wildcard(DNS泛域名)

    在DNS中,泛域名(wildcard Resource Record)可以被认为是一种合成RR的机制,借助于它,DNS服务器可以响应本来不存在的域名的请求,它的设计初衷是用来把所有邮件都转发到一个邮件 ...