我有一个特定的Web服务,期望将JSON作为发布内容,并将向后吐出XML。我正在对所有网络通话使用Retrofit。这是我使用XML转换器设置Retrofit适配器的方式:
mRestAdapter = new RestAdapter.Builder() .setEndpoint(getBaseUrl()) .setConverter(new SimpleXMLConverter()) .build();
如您所见,我没有使用Gson转换器。我如何设法发布任何JSON?谢谢!
创建自定义Converter。这将使用不同的转换器进行序列化和反序列化。
Converter
public class MixedConverter implements Converter { private Converter mSerializer; private Converter mDeserializer; public MixedConverter(Converter serializer, Converter deserializer) { mSerializer = serializer; mDeserializer = deserializer; } @Override public Object fromBody(TypedInput body, Type type) throws ConversionException { return mDeserializer.fromBody(body, type); } @Override public TypedOutput toBody(Object object) { return mSerializer.toBody(object); } }
用法:
.setConverter(new MixedConverter(new SimpleXMLConverter(), new GsonConverter(gson)));