@ResponseBody
@RequestMapping(value="tmall/udw18")
protected void udwUTF8(HttpServletRequest request, HttpServletResponse response) throws IOException {
maxUdwThread = new AtomicInteger(Integer.parseInt(maxUdwThreadStr));
logger.info(LifeUtil.packLog("tmall-udwUTF8-udw-start >>>>>>>>>>>"));
logger.info("UdwRest-udwUTF8当前使用的并发量为" + currentUdwThread + ",最大并发量为" + maxUdwThread);
long begin = System.currentTimeMillis();
List<String> listStr = new ArrayList<String>();
//返回淘宝xml
response.setHeader("Content-type", "application/xml;charset=GBK");
response.setCharacterEncoding("GBK");
try {
//当前支持的并发量加1
incrementCount();
//签名校验
boolean signFlag = false;
String xml = "";
ServletInputStream sis = request.getInputStream();
comId = request.getParameter("com_id");
logger.info("UdwRest-udwUTF8-comId=" + comId);
if(maskPw){
String sign=request.getParameter("sign");
logger.info("UdwRest-udwUTF8签名sign"+sign);
xml = SignUtil.readXmlFromInputStream(sis);
signFlag = SignUtil.validateSign(xml, sign);
}else{
xml = SignUtil.readXmlFromInputStream(sis);
signFlag= true;
}
if(!signFlag){
Map<String, String> mp = new HashMap<String, String>();
mp.put("ComId", comId);
mp.put("RequestType", "01");
mp.put("ResponseCode", "0");
mp.put("ErrorMessage", "签名验证失败");
listStr.add(TmallResponse.udwPackage(mp));
logger.info("tmall>>>>>>>>>>>>udw>>>>>>>>>>>>>>>>>returnXML="
+ TmallResponse.packPackageList(listStr));
response.getWriter().write(TmallResponse.packPackageList(listStr));
}
listStr = convertData(xml, request);
logger.info("tmall>>>>>>>>>>>>udw>>>>>>>>>>>>>>>>>returnXML=" + TmallResponse.packPackageList(listStr));
long end = System.currentTimeMillis();
logger.info("tmall>>>>>>>>>udw>>>>>>>>time=" + (end-begin) + "ms");
response.getWriter().write(TmallResponse.packPackageList(listStr));
} catch (Exception e) {
logger.error("UdwRest-udwUTF8-error:" + e.getMessage());
e.printStackTrace();
Map<String, String> mp = new HashMap<String, String>();
mp.put("ComId", comId);
mp.put("RequestType", "01");
mp.put("ResponseCode", "1");
mp.put("ErrorMessage", "系统异常");
listStr.add(TmallResponse.udwPackage(mp));
logger.info("tmall>>>>>>>>>>>>udw>>>>>>>>>>>>>>>>>returnXML="
+ TmallResponse.packPackageList(listStr));
response.getWriter().write(TmallResponse.packPackageList(listStr));
} finally {
//当前支持的最大并发量减1
decrementCount();
}
}
response.setHeader("Content-type", "application/xml;charset=GBK");
response.setCharacterEncoding("GBK");
return response.getWriter().write(TmallResponse.packPackageList(listStr));