`package io.renren.common.utils;
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;
}
}
`