码迷,mamicode.com
首页 > 其他好文 > 详细

resttemplate post方法

时间:2017-10-23 13:33:39      阅读:235      评论:0      收藏:0      [点我收藏+]

标签: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;
    }
}

 

resttemplate post方法

标签:his   dal   hang   uem   tail   null   integer   mapper   gzip   

原文地址:http://www.cnblogs.com/xiaozhangqq1/p/7714819.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!