Skip to content

Instantly share code, notes, and snippets.

@melice
Created June 10, 2014 08:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save melice/ed86e196f184c753adcf to your computer and use it in GitHub Desktop.
Save melice/ed86e196f184c753adcf to your computer and use it in GitHub Desktop.
package com.ifreestudio.olympic.servlet;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import org.apache.log4j.Logger;
public class GameHttpServlet extends HttpServlet {
private static final long serialVersionUID = -2568128461858828116L;
private static Logger logger = Logger.getLogger(GameHttpServlet.class);
public GameHttpServlet() {
super();
}
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
try {
String reqStr = getInputString(request);
logger.info("reqStr:" + reqStr);
if (reqStr != null && !reqStr.isEmpty()) {
JSONObject json = JSONObject.fromObject(reqStr);
String serviceName = json.optString("serviceName");
String callPara = json.optString("callPara");
if (serviceName != null && !serviceName.isEmpty() && callPara != null && !callPara.isEmpty()) {
String ret = null;
if ("payGem".equals(serviceName)) {
/*
* 划拨
* 参数示例:{"serviceName":"payGem","callPara":{"orderId":"b53d29fc-e277-4469-a4af-814e850ef8e2","productType":"1","amount":"1","payType":"1","gameRoleId":"9","timestamp":1352878310509,"verify":"8CFAADCB1119CCE1B9050FAA0B309C93"}}
*/
// ret = payGem(callPara, request);
} else if ("resultMsg".equals(serviceName)) {
/*
* 异步操作错误提示信息
* 参数示例:{"serviceName":"resultMsg","callPara":{"gameRoleId":"9426","returnCode":"60004","returnMsg":"udid is empty"}}
*/
// ret = resultMsg(callPara, request);
} else if ("bindEmail".equals(serviceName)) {
/*
* 邮箱绑定成功通知
* 参数示例:{"serviceName":"bindEmail","callPara":{"gameRoleId":"9426","timestamp":1352878310509,"verify":"8CFAADCB1119CCE1B9050FAA0B309C93"}}
*/
// ret = bindEmail(callPara);
}
if (null != ret) {
logger.info(ret);
response.getWriter().write(ret);
} else {
logger.error("80003:No such method...");
response.getWriter().write("{\"result\":\"80003\", \"resultMsg\":\"No such method.\"}");
}
return;
}
}
logger.error("80001:Wrong parameters while invoking service...");
response.getWriter().write(
"{\"result\":\"80001\", \"resultMsg\":\"Wrong parameters while invoking service.\"}");
} catch (Exception e) {
logger.error(e, e);
response.getWriter().write(
"{\"result\":\"80002\", \"resultMsg\":\"Error occur while invoking service.\"}");
}
}
protected String getInputString(HttpServletRequest request) {
BufferedReader in = null;
try {
String aLine;
StringBuilder s = new StringBuilder();
in = new BufferedReader(new InputStreamReader(request.getInputStream(), "utf-8"));
while ((aLine = in.readLine()) != null) {
s.append(aLine);
}
return s.toString();
} catch (Exception e) {
logger.error(e, e);
} finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e) {
logger.error(e, e);
}
}
return null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment