import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.log4j.Logger;
import com.alibaba.fastjson.JSONObject;
import com.servlet.rest.RestSupport;
import cc.util.action.mynew.MyRes;
import cc.util.action.mynew.MyRestServlet;
import thread.AsyncRequestProcessor;
@RestSupport(value = { "/yz/apiRisk/*" })
public class AsyncRiskCheckRest extends MyRestServlet{
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(AsyncRiskCheckRest.class);
@Override
public void setUrl() {
this.url = "/yz/apiRisk";
}
public void rikController(HttpServletRequest req, HttpServletResponse resp) throws IOException{
//启动标准输出流,输出结果
PrintWriter out = resp.getWriter();
JSONObject resObj = new JSONObject();
try {
//读取request中的请求json流
BufferedReader streamReader = new BufferedReader(new InputStreamReader(req.getInputStream(),"UTF-8"));
StringBuilder responseStrBuilder = new StringBuilder();
String inputStr;
while ((inputStr = streamReader.readLine()) != null)
responseStrBuilder.append(inputStr);
//解析成jsonObject
JSONObject jsonObject = JSONObject.parseObject(responseStrBuilder.toString());
String appNo = jsonObject.get("appNo") + "";
String retCode = jsonObject.get("retCode") + "";
String regMsg = jsonObject.get("retMsg") + "";
logger.info("appNo=" + appNo + ",retCode=" + retCode + ",regMsg=" + regMsg);
//参数校验
if (null == appNo || "".equals(appNo)) {
throw new MyRes.MyException("appNo is null");
}
if (null == retCode || "".equals(retCode)) {
throw new MyRes.MyException("retCode is null");
}
Map<String,Object> map = new HashMap<String,Object>();
map.put("appNo", appNo);
map.put("retCode", retCode);
map.put("retMsg", regMsg);
//启动线程处理,当前线程返回
AsyncRequestProcessor processor = new AsyncRequestProcessor(map);
Thread t = new Thread(processor);
t.start();
resObj.put("appNo", appNo);
resObj.put("retCode", "0");
} catch (Exception e) {
logger.info(ExceptionUtils.getStackTrace(e));
resObj.put("retCode", "1");
resObj.put("retMsg", e.getLocalizedMessage());
}
out.write(resObj.toString());
}
}
http请求异步接口实现
猜你喜欢
转载自my.oschina.net/u/2611678/blog/1814296
今日推荐
周排行