标签:his dal hang uem tail null integer mapper gzip
@Component @Slf4j public class StatisticsService { private final RestTemplate restTemplate; private final ExamRepository repository; private final ExamService examService; @Autowired public StatisticsService(RestTemplate restTemplate, ExamRepository repository, ExamService examService) { this.restTemplate = restTemplate; this.repository = repository; this.examService = examService; } //上传功能实现 public void postStatistics() throws Exception { int number = getLastedNumber(); List<Integer> ids = repository.findAll().stream().filter(exam -> exam.getId().compareTo(number) > 0).map(Exam::getId).collect(Collectors.toList()); post(Utils.getURI(Utils.URL.URL_POST_STATISTICS, getHeaders()), ids); } //封装的通用上传方法 public void post(URI url, List<Integer> ids) throws Exception { ParameterizedTypeReference<ResponseBase<String>> ptr = new ParameterizedTypeReference<ResponseBase<String>>() { }; //解压gzip HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory(HttpClientBuilder.create().build()); RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory); for (Integer id : ids) { ExamService.ExamDetailResult data = examService.getExamDetailResult(id); String requestJson = new ObjectMapper().writeValueAsString(data); JSONObject obj = new JSONObject(); obj.put("number", id); obj.put("data", requestJson); obj.put("type", 1); obj.put("version", "1.0.0"); HttpEntity<String> requestEntity = new HttpEntity<>(obj.toString(), getHeaders()); ResponseEntity<ResponseBase<String>> result = restTemplate.exchange(url, HttpMethod.POST, requestEntity, ptr); if (null == result.getBody().getData()) { throw new IllegalArgumentException("wrong action"); } } } //设置头信息 public MultiValueMap<String, String> getHeaders() { MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); headers.add("Accept", "application/json;charset=UTF-8"); headers.set("Content-Type", "application/json;charset=UTF-8"); headers.add("Authorization", "Basic YWRtaW46YWRxxxx="); return headers; } }
标签:his dal hang uem tail null integer mapper gzip
原文地址:http://www.cnblogs.com/xiaozhangqq1/p/7714819.html