LR发送中文参数

上一篇 / 下一篇  2013-08-27 20:31:59 / 个人分类:loadrunner相关

 
 
新的项目中,需要向应用发送一个中文的人名:  payerName : 张三,调用失败。,观察错误日志,发现 传过去的payerName是乱码。

  解决过程:

  1. Virtual User Gen的Tools->Recoding Options -> Advanced -> Support charset -> UTF-8

  重试之,无效。。。

  2. 使用lr_convert_string_encoding函数进行强制转码。

lr_convert_string_encoding: 对中文进行UTF-8转码
int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);
该函数有4个参数,含义如下:
 sourceString:被转换的源字符串。
fromEncoding:转换前的字符编码。
toEncoding:要转换成为的字符编码。
paramName:转换后的目标字符串。

 

注意: 使用这个函数转码出来的字符串会以 \x00 结尾,所以要做一次额外处理。

  代码如下:

char tmp[50];
        lr_convert_string_encoding("张三", LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str"); 
 strcpy(tmp,lr_eval_string("{str}"));
 lr_save_string(tmp,"payerName");

然后再使用 如下方式进行调用:

    web_custom_request("consume",
  "URL=http://192.168.12.89:8010/quickpay/v10/003",
  "Method=POST",
  "Resource=0",
  "RecContentType=application/json",
  "Referer=",
  "Mode=HTTP",
  "EncType=application/json", 
     "Body={\"cardHolderName\":\"{payerName}\",\"cardNo\":\"4392260802828457\",\"cardTypeEnum\":\"CREDI\"}",
        LAST); 


TAG:

 

评分:0

我来说两句

日历

« 2024-05-03  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 16438
  • 日志数: 32
  • 文件数: 2
  • 建立时间: 2012-01-08
  • 更新时间: 2013-08-27

RSS订阅

Open Toolbar