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);
|
}
|
|
}
|
}
|