package com.wb.sc.util;
import com.common.format.ByteHelper;
import com.common.format.HexStringBytes;
import com.wb.sc.app.SCApp;
import com.wb.sc.bean.BaseBean;
import com.wb.sc.security.RSA;
public class ParamsUtil {
public static final String ITEMS_DIVIDER = "-\\|";
public static final String ITEM_DIVIDER = "-@";
public static final String ITEM_IMG_DIVIDER = "-#";
public static final String ITEMS_DIVIDER_LINE = "\\|";
/**
*
* @描述: 封装请求参数
* @param value 字段的值
* @param length 字段在接口文档中定义的长度
* @return
*/
public static String getReqParam(String value, int length) {
if(value == null) value = "";
return value + "&" + length;
}
/**
*
* @描述: 封装请求参数, 并进行RSA加密
* @param value
* @param length
* @return
*/
public static String getReqRsaParam(String value, int length) {
if(value == null) value = "";
RSA rsa = new RSA();
try {
byte[] psd = rsa.encryptByPublicKey(SCApp.getInstance().getPublicKey(),
value.getBytes());
return getReqHexParam(HexStringBytes.bytes2HexString(psd), length);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static String getReqHexParam(String value, int length) {
if(value == null) value = "";
return value + "&" + length + "&" + "Hex";
}
public static String getReqIntParam(int value, int length) {
byte[] bLocalArr = new byte[length];
for (int i = 0, j=length-1; (i < 4) && (i < length); i++, j--) {
bLocalArr[j] = (byte) (value >> 8 * i & 0xFF);
}
return getReqHexParam(HexStringBytes.bytes2HexString(bLocalArr), length);
}
/**
*
* @描述: 获取响应字段中的参数,并自动下移指针位置
* @param baseBean
* @param length
* @return
*/
public static String getRespParamNext(BaseBean baseBean, int length) {
byte[] paramBytes = ByteHelper.byteArraySub(baseBean.dataBytes, baseBean.position, length);
baseBean.position += length;
return new String(paramBytes).trim();
}
/**
*
* @描述: 获取响应字段中的整形值,并自动下移指针位置
* @param baseBean
* @param length
* @return
*/
public static int getRespIntParamNext(BaseBean baseBean, int length) {
byte[] paramBytes = ByteHelper.byteArraySub(baseBean.dataBytes, baseBean.position, length);
baseBean.position += length;
int value = 0;
int j=0;
for(int i=paramBytes.length-1; i>0; i--) {
value += (paramBytes[i]&0xff)<<(8*j);
j++;
}
return value;
}
/**
*
* @描述: 获取响应字段中的指定参数
* @param baseBean
* @param start
* @param length
* @return
*/
public static String getRespParam(BaseBean baseBean, int start, int length) {
byte[] paramBytes = ByteHelper.byteArraySub(baseBean.dataBytes, start, length);
return new String(paramBytes).trim();
}
/**
*
* @描述: 获取是否有下一页标志
* @param baseBean
* @return
*/
public static boolean getNextPageFlag(BaseBean baseBean) {
boolean hasNextPage = false;
char flag = (char)baseBean.dataBytes[baseBean.dataBytes.length-1];
if(flag == '1') {
hasNextPage = true;
}
return hasNextPage;
}
}