Spring 的RestTemplate是基于Httpclient的請求模式。
package com.wlyd.fmcgwms.util.api;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.web.client.RestTemplate;
/**
* Spring RestTemplate工具類
*
* @packge com.wlyd.fmcgwms.util.api.RestTemplateUtils
* @date 2016年6月13日 下午4:14:23
* @author pengjunlin
* @comment
* @update
*/
public class RestTemplateUtils {
private static class SingletonRestTemplate {
/**
* 單例對象執行個體
*/
static final RestTemplate INSTANCE = new RestTemplate();
}
private RestTemplateUtils() {
}
/**
* 單例執行個體
*/
public static RestTemplate getInstance() {
return SingletonRestTemplate.INSTANCE;
}
/**
*
* 發送post請求
*
* @param url
* 請求URL位址
* @param data
* json資料
* @param token
* RSA加密token【RSA({PlatformCode+TenantCode+DateTime.Now()})//平台代碼
* +會員/租戶代碼+目前時間,然後進行RSA加密】
*/
public static String post(String url, String data, String token)
throws Exception {
HttpHeaders headers = new HttpHeaders();
/*headers.add(HttpHeadersImpl.ACCEPT, "application/json");
headers.add(HttpHeadersImpl.ACCEPT_ENCODING, "gzip");
headers.add(HttpHeadersImpl.CONTENT_ENCODING, "UTF-8");
headers.add(HttpHeadersImpl.CONTENT_TYPE,
"application/json; charset=UTF-8");
headers.add(HttpHeadersImpl.COOKIE, token);
headers.add("Token", token);*/
headers.add("Accept", "application/json");
headers.add("Accpet-Encoding", "gzip");
headers.add("Content-Encoding", "UTF-8");
headers.add("Content-Type", "application/json; charset=UTF-8");
headers.add("Token", token);
HttpEntity<String> formEntity = new HttpEntity<String>(data, headers);
return RestTemplateUtils.getInstance().postForObject(url, formEntity, String.class);
}
/**
*
* 發送post請求
*
* @param url
* 請求URL位址
* @param data
* json資料
* @param token
* RSA加密token【RSA({PlatformCode+TenantCode+DateTime.Now()})//平台代碼
* +會員/租戶代碼+目前時間,然後進行RSA加密】
* @param platformCode
* 平台編碼{平台配置設定}
* @param tenantCode
* 租戶号{平台配置設定}
*/
public static String post(String url, String data, String token,String platformCode,String tenantCode)
throws Exception {
HttpHeaders headers = new HttpHeaders();
/*headers.add(HttpHeadersImpl.ACCEPT, "application/json");
headers.add(HttpHeadersImpl.ACCEPT_ENCODING, "gzip");
headers.add(HttpHeadersImpl.CONTENT_ENCODING, "UTF-8");
headers.add(HttpHeadersImpl.CONTENT_TYPE,
"application/json; charset=UTF-8");
headers.add(HttpHeadersImpl.COOKIE, token);
headers.add("Token", token);*/
headers.add("Accept", "application/json");
headers.add("Accpet-Encoding", "gzip");
headers.add("Content-Encoding", "UTF-8");
headers.add("Content-Type", "application/json; charset=UTF-8");
headers.add("Token", token);
headers.add("PlatformCode", platformCode);
headers.add("TenantCode", tenantCode);
HttpEntity<String> formEntity = new HttpEntity<String>(data, headers);
return RestTemplateUtils.getInstance().postForObject(url, formEntity, String.class);
}
/**
* get根據url擷取對象
*/
public String get(String url) {
return RestTemplateUtils.getInstance().getForObject(url, String.class,
new Object[] {});
}
/**
* getById根據ID擷取對象
*/
public String getById(String url, String id) {
return RestTemplateUtils.getInstance().getForObject(url, String.class,
id);
}
/**
* post送出對象
*/
public String post(String url, String data) {
return RestTemplateUtils.getInstance().postForObject(url, null,
String.class, data);
}
/**
* put修改對象
*/
public void put(String url, String data) {
RestTemplateUtils.getInstance().put(url, null, data);
}
/**
* delete根據ID删除對象
*/
public void delete(String url, String id) {
RestTemplateUtils.getInstance().delete(url, id);
}
public static void main(String[] args) {
}
}
注:本工具使用了單例模式。