Created
June 10, 2014 08:42
-
-
Save melice/ed86e196f184c753adcf to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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