使用httpClient发送请求、使用fastJson处理数据
开发环境
- eclipse neo
- jdk 1.8.0_172
- Maven 3.5.3
最近工作上需要接收其他公司的数据,自己也是第一次写,写下来记录下使用体会吧。
前言
仔细阅读接口文档后发现其实需求很简单就是访问对方给的地址,解析返回的数据保存到数据库中。
因为公司项目的架构是struts1的所以我选择了使用httpClient来实现功能需求,其实实现这个需求的方式有很多,比如使用spring RestTemplate类发送http请求 也可以实现这个功能。即所谓最好的架构是什么,我觉得对于一个项目来说适合才是最重要的,个人觉得对每个项目来说并没有一个统一的答案(扯远了),适合才是最好的(这句话好像适用范围特别广)。
代码编写
话不多说,直接上代码吧。
private static final String url ="";
private static final String validCode ="";
private static final Log log = LogFactory.getLog(getTerminalSaleProduct.class);
//0001: 搜索时间参数为空 0003:验证码参数为空 0004:验证码错误 0005:日期格式错误
private HibernateBaseDao hibernateBaseDao = (HibernateBaseDao) SpringContext.getBean("hibernateBaseDao");
/**
* 定时任务调用 主方法
* 拿到数据 进行处理 保存到 数据库 保存日志
* 不考虑重复数据问题
* @author wangjiankai
* @return result
*/
public void getTerminalSaleProductDataAndInsertDB(){
log.info("---------获取销量数据定时任务开始--------");
String result = restfulPostJava(getUrl(url,validCode));
if(result != null ) {
Map<String, String> resultMap = getModelFromJson(result);
this.saveLog(resultMap);
}
log.info("---------获取销量数据定时任务结束--------");
}
/** 保存日志
* @author wangjiankai
* saveLog
* @