1. 程式人生 > >resttemplate post方法

resttemplate post方法

headers com 封裝 exceptio findall ntb object lar nbsp

@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方法