因工作需要,写了个解析loadrunner webservice协议返回值的函数。
解密后的返回值如下:
sqlCode=100;AffectRows=0
datetime string
dateflg filename
12 sss.xls
函数如下:
void getvalue(char* source,char* param,char* dest){
int len=strlen(param);
int pos=1,i=1;
char* result=(char *)calloc(20000, sizeof(char));
char* tpstr;
source= (char*) strstr((char*) source,"\n")+1; //删除第一行
source= (char*) strstr((char*) source,"\n")+1; //删除第二行
//找到匹配查询字段所在的位置
while(strncmp(source,param,len)!=0){
source =(char*)strstr((char*) source,"\t")+1;
pos++;
}
source =(char*)strstr((char*) source,"\n")+1;//删除第三行
strncat(source,"\t",strlen(source)-1); //去掉最后一行的\n,加上\t,方便后面的处理
//移到查询字段所在值的前后
while(i<=pos){
tpstr=source;
source =(char*) strstr((char*) source,"\t")+1;
i++;
}
//拷贝查询结果
strncpy(dest,tpstr,(int)source-(int)tpstr-1);
}
使用说明:
char* source="sqlCode=100;AffectRows=0\n"
"datetime string\n"
"dateflg filename\n"
"12 sss.xls\n";
char* dest=(char*)calloc(2048,sizeof(char));
getvalue(source,"filename",dest);
lr_message(dest);
free(dest);