/* * Copyright (c) 2018, 2025, GRACE Technology Co.,Ltd. All rights reserved. * GRACE PROPIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.fineone.currency.comm.util;
import java.util.HashMap;
import java.util.Map;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
/**
* HTTP请求
*
* @author Michael Lin
* @Created 2019/1/16.
*/
@Slf4j
public class HttpHelper {
public static <T> T post(String url, MultiValueMap<String, String> header, Map<String, Object> body, Class<T> clazz) {
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setConnectTimeout(30000);
factory.setReadTimeout(30000);
RestTemplate restTemplate = new RestTemplate(factory);
HttpHeaders headers = new HttpHeaders(header);
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
HttpEntity<String> httpEntity = new HttpEntity<>(JSON.toJSONString(body), headers);
ResponseEntity<T> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, clazz);
return response.getBody();
}
/**
* HTTP POST请求
*
* @param url
* @param params
* @return
*/
public static <T> T postFormData(String url, MultiValueMap<String, String> header,Map<String, Object> params, Class<T> clazz) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders(header);
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, Object> map= new LinkedMultiValueMap<>();
for(String key : params.keySet()){
map.add(key, params.get(key));
}
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(map, headers);
ResponseEntity<T> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, clazz);
return response.getBody();
}
/**
* HTTP POST请求
*
* @param url
* @param params
* @return
*/
public static <T> T postFormData(String url, Map<String, Object> params, Class<T> clazz) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, Object> map= new LinkedMultiValueMap<>();
for(String key : params.keySet()){
map.add(key, params.get(key));
}
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(map, headers);
ResponseEntity<T> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, clazz);
return response.getBody();
}
/**
* HTTP POST请求
*
* @param url
* @param params
* @return
*/
public static <T> T post(String url, Map<String, Object> params, Class<T> clazz) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
HttpEntity<String> httpEntity = new HttpEntity<>(JSONObject.toJSONString(params), headers);
ResponseEntity<T> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, clazz);
return response.getBody();
}
/**
* HTTP POST请求
*
* @param url
* @param jsonData
* @return
*/
public static <T> T post(String url, String jsonData, Class<T> clazz) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
HttpEntity<String> httpEntity = new HttpEntity<>(jsonData, headers);
ResponseEntity<T> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, clazz);
return response.getBody();
}
/**
* HTTP GET请求
*
* @param url
* @param params
* @return
*/
public static <T> T get(String url, Map<String, Object> params, Class<T> clazz) {
if (params == null) {
params = new HashMap<>();
}
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<T> response = restTemplate.exchange(url, HttpMethod.GET, null, clazz, params);
return response.getBody();
}
public static void main(String[] args) {
}
}
HttpHelper
于 2023-05-13 16:00:20 首次发布