spring boot/cloud中RestTemplate對象的方法調用

簡單單元方法

get和post方式請求資源

get

  // get請求方式,  直接封裝json傳遞參數
  private JSONObject getData(String url){
    System.out.println("remote api request param:\nurl:【"+url+"】");
    String result =  restTemplate.getForObject(url, String.class);
    System.out.println("remote api response param:\nresponse-param:【"+result+"】");
    JSONObject results = JSONObject.parseObject(result);
    return results;
  }

post

  // post請求方式,  直接封裝json傳遞參數
  private JSONObject postData(JSONObject jsonObj,String urls){
    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> formEntity = new HttpEntity<String>(jsonObj.toString(), headers);
    System.out.println("remote api request param:\nurl:【"+urls+"】\nrequest-param:【"+JSONObject.toJSON(formEntity)+"】");
    String result =  restTemplate.postForObject(urls, formEntity, String.class);
    System.out.println("remote api response param:\nresponse-param:【"+result+"】");
    JSONObject results = JSONObject.parseObject(result);
    return results;
  }

複雜豐富的方法書寫

基礎類(類對象由於是接收第三方,以下是對接一種第三方的情況)

package com.demo;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/**
 * @Description 接收第三方相應結果對象
 **/
public class RemoteResultMap {
  private String code;

  private String status;

  private String message;

  private String data;

  private String datas;

  public String getCode() {
    return code;
  }

  public void setCode(String code) {
    this.code = code;
  }

  public String getStatus() {
    return status;
  }

  public void setStatus(String status) {
    this.status = status;
  }

  public String getMessage() {
    return message;
  }

  public void setMessage(String message) {
    this.message = message;
  }

  public String getData() {
    return data;
  }

  public void setData(String data) {
    this.data = data;
  }

  public String getDatas() {
    return datas;
  }

  public void setDatas(String datas) {
    this.datas = datas;
  }
  @Override
  public int hashCode() {
    return HashCodeBuilder.reflectionHashCode(this);
  }

  @Override
  public boolean equals(Object object) {
    return EqualsBuilder.reflectionEquals(this, object);
  }

  @Override
  public String toString() {
    return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
  }
}

package com.demo;

import java.io.Serializable;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/**
 * @Description 內部接口統一返回遠程調用結果
 **/
public class RemoteResultBean<T> implements Serializable {
    private static final long serialVersionUID = -1724546458368592165L;
    private String returnCode = "0000";// 返回代碼
    private String returnMessage;// 錯誤信息描述
    private T model;// 返回對象
    private Integer pageCount;// 分頁總頁數
    private Integer dataCount;// 數據總條數

    public String getReturnCode() {
        return returnCode;
    }

    public void setReturnCode(String returnCode) {
        this.returnCode = returnCode;
    }

    public String getReturnMessage() {
        return returnMessage;
    }

    public void setReturnMessage(String returnMessage) {
        this.returnMessage = returnMessage;
    }

    public T getModel() {
        return model;
    }

    public void setModel(T model) {
        this.model = model;
    }

    public Integer getPageCount() {
        return pageCount;
    }

    public void setPageCount(Integer pageCount) {
        this.pageCount = pageCount;
    }

    public Integer getDataCount() {
        return dataCount;
    }

    public void setDataCount(Integer dataCount) {
        this.dataCount = dataCount;
    }

    public Boolean isSuccess() {
        return this.getReturnCode().equals("0000");
    }

    @Override
    public int hashCode() {
        return HashCodeBuilder.reflectionHashCode(this);
    }

    @Override
    public boolean equals(Object object) {
        return EqualsBuilder.reflectionEquals(this, object);
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
    }
}

package com.demo;

/**
 * @Description 統一返回遠程調用異常處理集合
 **/
public enum  RemoteServiceEnum {
  requestError("9995", "遠程調用失敗"), bussinessError("9994", "遠程調用業務失敗"), methodError("9999", "請求方式只支持Get和Post"), responeDataEmpty("9993", "調用遠程方法未返回Data");

  private String code;
  private String name;

  RemoteServiceEnum(String code, String name) {
    this.code = code;
    this.name = name;
  }

  public String getCode() {
    return code;
  }

  public void setCode(String code) {
    this.code = code;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }
}

遠程調用接口

package com.demo;

import java.util.List;
import java.util.Map;
import org.springframework.http.HttpMethod;

public interface RemoteService {
   /**
     * 發送帶Header頭的請求 並返回對應對象
     * @param url
     * @param requestParam
     * @param requestHeader
     * @param httpMethod
     * @param clazz
     * @return
     */
    <T> RemoteResultBean<T> sendWithHeader(String url, Map<String, Object> requestParam, Map<String, String> requestHeader, HttpMethod httpMethod, Class<?> clazz);

    /**
     * 發送帶Header頭的請求 並返回對應對象的List
     * @param url
     * @param requestParam
     * @param requestHeader
     * @param httpMethod
     * @param clazz
     * @return
     */
    <T> RemoteResultBean<List<T>> sendWithHeader4List(String url, Map<String, Object> requestParam, Map<String, String> requestHeader, HttpMethod httpMethod, Class<?> clazz);

  <T> RemoteResultBean<List<T>> sendObjectWithHeader4List(String url,
      Object requestParam, Map<String, String> requestHeader, HttpMethod httpMethod,
      Class<?> clazz);

  /**
   * 發送帶Header頭的請求 請求參數爲Object 並返回對應對象的Object
   * @param url
   * @param requestParam
   * @param requestHeader
   * @param httpMethod
   * @param clazz
   * @param <T>
   * @return
   */
  <T> RemoteResultBean<T> sendObjectWithHeader4Object(String url,
      Object requestParam, Map<String, String> requestHeader, HttpMethod httpMethod,
      Class<?> clazz);

  /**
     * 發送不帶Header頭的請求 並返回對應對象
     * @param url
     * @param requestParam
     * @param httpMethod
     * @param clazz
     * @return
     */
    <T> RemoteResultBean<T> sendWithoutHeader(String url, Map<String, Object> requestParam, HttpMethod httpMethod, Class<?> clazz);

    /**
     * 發送不帶Header頭的請求 並返回對應對象的List
     * @param url
     * @param requestParam
     * @param httpMethod
     * @param clazz
     * @return
     */
    <T> RemoteResultBean<List<T>> sendWithoutHeader4List(String url, Map<String, Object> requestParam, HttpMethod httpMethod, Class<?> clazz);

    <T> RemoteResultBean<T> postByEntity(String url,
        Map<String, String> requestParam, Class<?> clazz);

    /**
     * 手機號碼加解密服務
     * @param url
     * @param value
     * @return
     */    
    public String cryption(String url,String value);

    /**
     * 無返回請求
     * @param url
     * @param requestParam
     * @param requestHeader
     * @param httpMethod
     */
    public void sendWithoutResponse(String url, Map<String, Object> requestParam, Map<String, String> requestHeader, HttpMethod httpMethod);

    <T> RemoteResultBean<T> sendReturnString(String url, Map<String, Object> requestParam,
        Map<String, String> requestHeader, HttpMethod httpMethod);
}

遠程調用接口實現

package com.demo;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.lang.time.DateFormatUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Import;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;

/**
 * 遠程調用服務實現方法
 */
@Service
@ConfigurationProperties
@Import({RestTemplateConfig.class})
public class RemoteServiceImpl implements RemoteService {

  @Resource
  private RestTemplate restTemplate;

  private Logger logger = LoggerFactory.getLogger(RemoteServiceImpl.class);


  @Override
  public <T> RemoteResultBean<T> sendWithHeader(String url, Map<String, Object> requestParam,
      Map<String, String> requestHeader, HttpMethod httpMethod, Class<?> clazz) {
    RemoteResultBean<T> resultBean = new RemoteResultBean<>();
    ObjectMapper objectMapper = new ObjectMapper();
    try {
      JSONObject jsonObject = sendRequest(url, requestParam, requestHeader, httpMethod);
      resultBean = convertFromJSONObjectToObject(jsonObject, clazz);
    } catch (Exception e) {
      logger.error("1.遠程調用異常 err:" , e);
      resultBean.setReturnCode("9998");
      resultBean.setReturnMessage("遠程調用異常");
    }
    return resultBean;
  }

  @Override
  public <T> RemoteResultBean<List<T>> sendWithHeader4List(String url,
      Map<String, Object> requestParam, Map<String, String> requestHeader, HttpMethod httpMethod,
      Class<?> clazz) {
    RemoteResultBean<List<T>> resultBean = new RemoteResultBean<>();
    try {
      logger.info("Invoke URL:"+url);
      
      JSONObject jsonObject = sendRequest(url, requestParam, requestHeader, httpMethod);
      resultBean = convertFromJSONObjectToList(jsonObject, clazz);
    } catch (Exception e) {
      logger.error("1.遠程調用異常 err:" + e);
      resultBean.setReturnCode("9998");
      resultBean.setReturnMessage("遠程調用異常");
    }
    return resultBean;
  }

  @Override
  public <T> RemoteResultBean<List<T>> sendObjectWithHeader4List(String url,
      Object requestParam, Map<String, String> requestHeader, HttpMethod httpMethod,
      Class<?> clazz) {
    RemoteResultBean<List<T>> resultBean = new RemoteResultBean<>();
    try {
      JSONObject jsonObject = sendObjectRequest(url, requestParam, requestHeader, httpMethod);
      resultBean = convertFromJSONObjectToList(jsonObject, clazz);
    } catch (Exception e) {
      logger.error("3.遠程調用異常 err:"+url , e);
      resultBean.setReturnCode("9998");
      resultBean.setReturnMessage("遠程調用異常");
    }
    return resultBean;
  }

  @Override
  public <T> RemoteResultBean<T> sendObjectWithHeader4Object(String url, Object requestParam,
      Map<String, String> requestHeader, HttpMethod httpMethod, Class<?> clazz) {
    RemoteResultBean<T> resultBean = new RemoteResultBean<>();
    try {
      JSONObject jsonObject = sendObjectRequest(url, requestParam, requestHeader, httpMethod);
      resultBean = convertFromJSONObjectToObject(jsonObject, clazz);
    } catch (Exception e) {
      logger.error("4.遠程調用異常 err:" , e);
      resultBean.setReturnCode(RemoteServiceEnum.requestError.getCode());
      resultBean.setReturnMessage("遠程調用異常");
    }
    return resultBean;
  }

  @Override
  public <T> RemoteResultBean<T> sendWithoutHeader(String url, Map<String, Object> requestParam,
      HttpMethod httpMethod, Class<?> clazz) {
    return sendWithHeader(url, requestParam, null, httpMethod, clazz);
  }

  @Override
  public <T> RemoteResultBean<List<T>> sendWithoutHeader4List(String url,
      Map<String, Object> requestParam, HttpMethod httpMethod, Class<?> clazz) {
    return sendWithHeader4List(url, requestParam, null, httpMethod, clazz);
  }

  @Override
  public <T> RemoteResultBean<T> postByEntity(String url,
      Map<String, String> requestParam, Class<?> clazz) {
    ResponseEntity<String> response = restTemplate.postForEntity(url, requestParam, String.class);
    return convertFromJSONObjectToObject(JSONObject.parseObject(response.getBody()), clazz);
  }

  private JSONObject sendRequest(String url, Map<String, Object> requestParam,
      Map<String, String> requestHeader, HttpMethod httpMethod) {
    //headers
    HttpHeaders requestHeaders = new HttpHeaders();
    if (null != requestHeader) {
      for (Map.Entry<String, String> entry : requestHeader.entrySet()) {
        requestHeaders.add(entry.getKey(), entry.getValue());
      }
    }

    //body
    MultiValueMap<String, Object> requestBody = new LinkedMultiValueMap<>();
    if (null != requestParam) {
      for (Map.Entry<String, Object> entry : requestParam.entrySet()) {
        requestBody.add(entry.getKey(), entry.getValue());
      }
    }

    HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(requestBody,
        requestHeaders);
    logger.info("遠程調用入參信息:【url="+url+"】,【requestParam="+JSONObject.toJSONString(requestParam)+"】");
    String json =  this.executeRemote(url,requestEntity,httpMethod);

    logger.info("遠程調用出參信息:【json="+json+"】");
    return JSONObject.parseObject(json);
  }

  private String executeRemote(String url, HttpEntity<MultiValueMap<String, Object>> requestEntity, HttpMethod httpMethod){
    String json = "";
    if (httpMethod == HttpMethod.GET) {
      ResponseEntity<String> response = restTemplate
          .exchange(url, HttpMethod.GET, requestEntity, String.class);
      json = response.getBody();
    } else if (httpMethod == HttpMethod.POST) {
      json = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class).getBody();
    } else {
      Map<String, String> result = new HashMap<>();
      result.put("code", RemoteServiceEnum.methodError.getCode());
      result.put("message", RemoteServiceEnum.methodError.getName());
      json = JSON.toJSONString(result);
    }
    return json;
  }

  private JSONObject sendObjectRequest(String url, Object requestParam,
      Map<String, String> requestHeader, HttpMethod httpMethod) {
    //headers
    HttpHeaders requestHeaders = new HttpHeaders();
    if (null != requestHeader) {
      for (Map.Entry<String, String> entry : requestHeader.entrySet()) {
        requestHeaders.add(entry.getKey(), entry.getValue());
      }
    }
    //組裝HttpEntity
    HttpEntity<Object> requestEntity = new HttpEntity<>(requestParam,
        requestHeaders);
    logger.info("遠程調用開始");
    String json = "";
    if (httpMethod == HttpMethod.GET) {
      ResponseEntity<String> response = restTemplate
          .exchange(url, HttpMethod.GET, requestEntity, String.class);
      json = response.getBody();
    } else if (httpMethod == HttpMethod.POST) {
      json = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class).getBody();
    } else {
      Map<String, String> result = new HashMap<>();
      result.put("code", RemoteServiceEnum.methodError.getCode());
      result.put("message", RemoteServiceEnum.methodError.getName());
      json = JSON.toJSONString(result);
    }
    logger.info("遠程調用結束:"+json);
    return JSONObject.parseObject(json);
  }

  /**
   * 無返回結果的請求
   */
  private void sendRequestWithOutResponse(String url, Map<String, Object> requestParam,
      Map<String, String> requestHeader, HttpMethod httpMethod) {
    //headers
    HttpHeaders requestHeaders = new HttpHeaders();
    if (null != requestHeader) {
      for (Map.Entry<String, String> entry : requestHeader.entrySet()) {
        requestHeaders.add(entry.getKey(), entry.getValue());
      }
    }

    //body
    MultiValueMap<String, Object> requestBody = new LinkedMultiValueMap<>();
    if (null != requestParam) {
      for (Map.Entry<String, Object> entry : requestParam.entrySet()) {
        requestBody.add(entry.getKey(), entry.getValue());
      }
    }

    //組裝HttpEntity
    HttpEntity<JSONObject> requestEntity = new HttpEntity<>(
        JSONObject.parseObject(JSON.toJSONString(requestParam)),
        requestHeaders);
    String json = "";
    if (httpMethod == HttpMethod.GET) {
      ResponseEntity<String> response = restTemplate
          .exchange(url, HttpMethod.GET, requestEntity, String.class);
      json = response.getBody();
    } else if (httpMethod == HttpMethod.POST) {
      json = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class).getBody();
    } else {
      Map<String, String> result = new HashMap<>();
      result.put("code", RemoteServiceEnum.methodError.getCode());
      result.put("message", RemoteServiceEnum.methodError.getName());
      json = JSON.toJSONString(result);
    }
  }

  private String sendRequestReturnString(String url, Map<String, Object> requestParam,
      Map<String, String> requestHeader, HttpMethod httpMethod) {
    //headers
    HttpHeaders requestHeaders = new HttpHeaders();
    if (null != requestHeader) {
      for (Map.Entry<String, String> entry : requestHeader.entrySet()) {
        requestHeaders.add(entry.getKey(), entry.getValue());
      }
    }

    //body
    MultiValueMap<String, Object> requestBody = new LinkedMultiValueMap<>();
    if (null != requestParam) {
      for (Map.Entry<String, Object> entry : requestParam.entrySet()) {
        requestBody.add(entry.getKey(), entry.getValue());
      }
    }

    //組裝HttpEntity
    HttpEntity<JSONObject> requestEntity = new HttpEntity<>(
        JSONObject.parseObject(JSON.toJSONString(requestParam)),
        requestHeaders);
    String json = "";
    if (httpMethod == HttpMethod.GET) {
      ResponseEntity<String> response = restTemplate
          .exchange(url, HttpMethod.GET, requestEntity, String.class);
      json = response.getBody();
    } else if (httpMethod == HttpMethod.POST) {
      json = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class).getBody();
    } else {
      Map<String, String> result = new HashMap<>();
      result.put("code", RemoteServiceEnum.methodError.getCode());
      result.put("message", RemoteServiceEnum.methodError.getName());
      json = JSON.toJSONString(result);
    }
    return json;
  }

  private <T> RemoteResultBean<List<T>> convertFromJSONObjectToList(JSONObject jsonObject,
      Class<?> clazz) {
    RemoteResultBean<List<T>> resultBean = new RemoteResultBean<>();
    if (null == jsonObject) {
      resultBean.setReturnCode(RemoteServiceEnum.requestError.getCode());
      resultBean.setReturnMessage("調用遠程方法失敗 返回對象爲空");
    } else {

      RemoteResultMap resultMap = JSONObject
          .parseObject(jsonObject.toJSONString(), RemoteResultMap.class);
      if ((null != resultMap.getCode() && resultMap.getCode().equals("0")) || (
          null != resultMap.getStatus() && resultMap.getStatus().equals("true"))) {
        if (null != resultMap.getData()) {
          List<T> list = (List<T>) JSON.parseArray(resultMap.getData(), clazz);
          resultBean.setModel(list);
        } else {
          resultBean.setReturnCode(RemoteServiceEnum.responeDataEmpty.getCode());
          resultBean.setReturnMessage(RemoteServiceEnum.responeDataEmpty.getName());
          logger.info(jsonObject.toString());
        }
      }  else if( null != resultMap.getStatus() && resultMap.getStatus().equals("false")) {
        resultBean.setReturnCode(RemoteServiceEnum.bussinessError.getCode());
        if(null != resultMap.getMessage()) {
          resultBean.setReturnMessage(resultMap.getMessage());
        } else {
          resultBean.setReturnMessage(RemoteServiceEnum.bussinessError.getName());
        }
        logger.info(jsonObject.toString());
      } else {
        resultBean.setReturnCode(RemoteServiceEnum.requestError.getCode());
        resultBean.setReturnMessage(RemoteServiceEnum.requestError.getName());
        logger.info(jsonObject.toString());
      }
    }
    return resultBean;
  }

  private <T> RemoteResultBean<T> convertFromJSONObjectToObject(JSONObject jsonObject,
      Class<?> clazz) {
    RemoteResultBean<T> resultBean = new RemoteResultBean<>();
    if (null == jsonObject) {
      resultBean.setReturnCode(RemoteServiceEnum.requestError.getCode());
      resultBean.setReturnMessage("調用遠程方法失敗 返回對象爲空");
    } else {
      RemoteResultMap resultMap = JSONObject
          .parseObject(jsonObject.toJSONString(), RemoteResultMap.class);
      if ((null != resultMap.getCode() && resultMap.getCode().equals("0")) || (
          null != resultMap.getStatus() && (resultMap.getStatus().equals("true") || resultMap.getStatus().equals("1")))) {
        if (null != resultMap.getData()) {
          T object = (T) JSONObject.parseObject(resultMap.getData(), clazz);
          resultBean.setModel(object);
        }else if (null != resultMap.getDatas()) {
          T object = (T) JSONObject.parseObject(resultMap.getDatas(), clazz);
          resultBean.setModel(object);
        }  else {
          resultBean.setReturnCode(RemoteServiceEnum.responeDataEmpty.getCode());
          resultBean.setReturnMessage(RemoteServiceEnum.responeDataEmpty.getName());
          logger.info(jsonObject.toString());
        }
      } else if( null != resultMap.getStatus() && resultMap.getStatus().equals("false")) {
        resultBean.setReturnCode(RemoteServiceEnum.bussinessError.getCode());
        if(null != resultMap.getMessage()) {
          resultBean.setReturnMessage(resultMap.getMessage());
        } else {
          resultBean.setReturnMessage(RemoteServiceEnum.bussinessError.getName());
        }
        logger.info(jsonObject.toString());
      } else {
        resultBean.setReturnCode(RemoteServiceEnum.requestError.getCode());
        resultBean.setReturnMessage(RemoteServiceEnum.requestError.getName());
        logger.info(jsonObject.toString());
      }
    }
    return resultBean;
  }

  /**
   * 手機號碼加解密服務
   *
   * @param url, value
   */
  public String cryption(String url, String value) {
    logger.info("\n\n  <<<<<<<<< 遠程服務調用 【方法名】RemoteServiceImpl.cryption:【開始時間 】: " + DateFormatUtils.format(new Date() ,"yyyyMMddHHmmssSSS"));
    value = "=" + value;
    byte[] valueByte = value.getBytes();

    HttpHeaders requestHeader = new HttpHeaders();
    requestHeader.add("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
    logger.info("\n\n  <<<<<<<<< 遠程服務調用 【url】 :"+url +"<<<<<<< 【參數】 value :"+value+"<<<<<<< 【header參數】application/x-www-form-urlencoded");
    HttpEntity<byte[]> requestEntity = new HttpEntity<>(valueByte, requestHeader);
    ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
    String json=responseEntity.getBody();
    logger.info("\n\n  <<<<<<<<< 遠程服務調用 【url】 :"+url  +"【結果】 :"+JSON.toJSONString(responseEntity) );
    logger.info("\n\n  <<<<<<<<< 遠程服務調用 【方法名】RemoteServiceImpl.cryption:【開始時間 】: " + DateFormatUtils.format(new Date() ,"yyyyMMddHHmmssSSS"));
    JSONObject jsonObject = JSON.parseObject(json);
    return jsonObject.getString("Data");
  }

  @Override
  public void sendWithoutResponse(String url, Map<String, Object> requestParam,
      Map<String, String> requestHeader, HttpMethod httpMethod) {
    try {
      sendRequestWithOutResponse(url, requestParam, requestHeader, httpMethod);
    } catch (Exception e) {
      logger.error("遠程調用異常 url:" + url + " err:" + e.getMessage());
    }
  }

  @Override
  public <T> RemoteResultBean<T> sendReturnString(String url, Map<String, Object> requestParam,
      Map<String, String> requestHeader, HttpMethod httpMethod) {
    RemoteResultBean<T> resultBean = new RemoteResultBean<>();
    try {
      String result = sendRequestReturnString(url, requestParam, requestHeader, httpMethod);
      resultBean.setModel((T) result);
    } catch (Exception e) {
      logger.error("遠程調用異常 url:" + url + " err:" + e.getMessage());
      resultBean.setReturnCode(RemoteServiceEnum.requestError.getCode());
      resultBean.setReturnMessage(RemoteServiceEnum.requestError.getName());
    }
    return resultBean;
  }


  public static void  main(String[] args){

    RestTemplate restTemplate = new RestTemplate();
    String url="http://192.168.41.75:8001/Encrypt";
    String value = "13761298925";
    byte[] valueByte = value.getBytes();

    HttpHeaders requestHeader = new HttpHeaders();
    requestHeader.add("Content-Type", "application/x-www-form-urlencoded");
    HttpEntity<byte[]> requestEntity = new HttpEntity<>(valueByte, requestHeader);
    String json = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class)
            .getBody();
    JSONObject jsonObject = JSON.parseObject(json);

  }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章