package com.safeluck.aaej.app.utils.feign; import com.google.gson.Gson; import com.safeluck.aaej.app.utils.PayJsonResult; import com.safeluck.aaej.app.utils.PayMessageEncryptor; import com.safeluck.aaej.base.utils.DefaultGson; import feign.RequestTemplate; import feign.codec.Encoder; import java.io.UnsupportedEncodingException; import java.lang.reflect.Type; public class FeignGsonEncoder implements Encoder { private final Gson gson = DefaultGson.get(); PayMessageEncryptor payMessageEncryptor = new PayMessageEncryptor(); public void encode(Object object, Type bodyType, RequestTemplate template) { String json = null; if(object instanceof String) { json=object.toString(); } else { PayJsonResult payJsonResult = new PayJsonResult(); payJsonResult.setData(object); // Type newtype = TypeBuilder.newInstance(PayJsonResult.class).addTypeParam(bodyType).build(); // Class c; json = gson.toJson(payJsonResult); } byte[] json_bytes = new byte[0]; try { json_bytes = json.getBytes("utf-8"); String result = payMessageEncryptor.encrypt(json_bytes); template.body(result); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } } }