HTTP请求接口,10分钟内超过100个sessionId将无法调用,10分钟才能销毁处理
1.调用HTTP请求时,10秒调用一次,10分钟内sessionId生产100个,将不能产生新的sessionId问题,因此需要把sessionId存储起来复用
2.代码演示
//存储账号对应ip地址sessionId,时间戳,声明存储
private Map<String, List<String>> collectionSessionMap = new HashMap<>();
//存在账号的sessionId等相关信息
if (collectionSessionMap.containsKey(siteInfoDTO.getGatewayGrm())) {
//获取相关账号的集合
List<String> collectionSessionList = collectionSessionMap.get(siteInfoDTO.getGatewayGrm());
//获取账号,sessionId里面的时间戳
long collectionTimeStamp = Long.parseLong(collectionSessionList.get(2));
//账号里面的时间戳加10分钟
long collectionTimeAccum = collectionTimeStamp + (10 * 60 * 1000);
//判断当前时间大于等于累加过后的时间,超过10分钟销毁存储的信息
if (recordTime >= collectionTimeAccum) {
//删除map里面的账号相关信息
collectionSessionMap.remove(siteInfoDTO.getGatewayGrm());
//调用相关地址,账号,密码获取新的账号相关验证信息
LoginToCollectDTO loginToCollectDTO = loginAuthInfo(siteInfoDTO);
System.out.println("登录后返回值>>>:" + loginToCollectDTO);
//获取到的登录验证信息,插入验证信息map里面
List<String> verificationInfoList = new ArrayList<>();
//添加ip地址
verificationInfoList.add(loginToCollectDTO.getCollectAddr());
//添加sessionId
verificationInfoList.add(loginToCollectDTO.getCollectSessionId());
//添加时间戳
verificationInfoList.add(String.valueOf(recordTime));
//把此账号相关信息插入到map
collectionSessionMap.put(siteInfoDTO.getGatewayGrm(), verificationInfoList);
}
//不存在账号的sessionId等相关信息
} else {
//调用相关地址,账号,密码获取新的账号相关验证信息
LoginToCollectDTO loginToCollectDTO = loginAuthInfo(siteInfoDTO);
System.out.println("登录后返回值>>>:" + loginToCollectDTO);
//获取到的登录验证信息,插入验证信息map里面
List<String> verificationInfoList = new ArrayList<>();
//添加ip地址
verificationInfoList.add(loginToCollectDTO.getCollectAddr());
//添加sessionId
verificationInfoList.add(loginToCollectDTO.getCollectSessionId());
//添加时间戳
verificationInfoList.add(String.valueOf(recordTime));
//把此账号相关信息插入到map
collectionSessionMap.put(siteInfoDTO.getGatewayGrm(), verificationInfoList);
}