`
import org.springframework.http.*;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.util.Collections;
/**
*RestTemplate工具類
*
*/
public class RestTemplateUtils {
public static Object getHttpUrlEncodeRequest(String url, Object request) {
Object result = null;
//設置代理
RestTemplate restTemplate = new RestTemplate(new SimpleClientHttpRequestFactory() {
{
setProxy(new java.net.Proxy(Proxy.Type.HTTP, new InetSocketAddress("hostname", Integer.parseInt("8080"))));
}
});
//設置請求頭
HttpHeaders httpHeaders = new HttpHeaders();
//請求格式,可以設置別的類型urlencoded類型在請求時會自動將請求參數進行urlencode不用事先進行處理。
httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
//設置參數,請求體可以為Sring,json等類型
MultiValueMap<String,Object> params=new LinkedMultiValueMap<>();
params.put("id", Collections.singletonList(request));
HttpEntity<Object> objectHttpEntity = new HttpEntity<>(params, httpHeaders);
try {
ResponseEntity<Object> response = restTemplate.exchange(url, HttpMethod.POST, objectHttpEntity, Object.class);
result = response.getBody();
int code = response.getStatusCodeValue();
} catch (RestClientException e) {
e.printStackTrace();
}
return result;
}
public static Object getHttpJsonRequest(String url, Object request) {
Object result = null;
//設置代理
RestTemplate restTemplate = new RestTemplate(new SimpleClientHttpRequestFactory() {
{
setProxy(new java.net.Proxy(Proxy.Type.HTTP, new InetSocketAddress("hostname", Integer.parseInt("8080"))));
}
});
//設置請求頭
HttpHeaders httpHeaders = new HttpHeaders();
//請求格式,可以設置別的類型
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
//設置請求體,請求體可以為Sring,json等類型
HttpEntity<Object> objectHttpEntity = new HttpEntity<>(request, httpHeaders);
try {
ResponseEntity<Object> response = restTemplate.exchange(url, HttpMethod.POST, objectHttpEntity, Object.class);
result = response.getBody();
int code = response.getStatusCodeValue();
} catch (RestClientException e) {
e.printStackTrace();
}
return result;
}
}
`