Jersey的使用——Post数据读取
web.xml添加适配器,截取请求
<servlet> <servlet-name>ServletAdaptor</servlet-name> <servlet-class>com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ServletAdaptor</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
通过注解指定根路径和子路径
@Path("/")//根路径
public class TokenManagerImpl implements TokenManager{
@Override
@POST
@Path("GetLoginToken")//子路径
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces( { MediaType.APPLICATION_JSON, "application/json" })
public String getLoginToken(InputStream in) throws Exception {
byte[] buf = new byte[in.available()];
in.read(buf);
//读取参数
String content = new String(buf);
String scID = "";
if(content != null){
try {
scID = content.split("\\=")[1];
} catch (Exception e) {
return "ResultCode=" + e.getMessage();
}
}
User user = new User();
user.setScID(scID);
LiveUsers lu = LiveUsers.getInstance();
String token = HeartBeatTokenFactory.allocToken();
if(lu.hasLogin(user)){
lu.delLiveUser(user); // 踢掉之前的用户
lu.addLiveUser(token, user);
return "ResultCode=503&NewToken=" + token;
}else{
lu.addLiveUser(token, user);
return "ResultCode=200&Token=" + token;
}
}
请求时,通过HttpURLConnection发送post的二进制数据到HTTP://localhost:8080/应用名/GetLoginToken
浙公网安备 33010602011771号