一尘不染

如何发布JSON但使用Retrofit获得XML响应?

json

我有一个特定的Web服务,期望将JSON作为发布内容,并将向后吐出XML。我正在对所有网络通话使用Retrofit。这是我使用XML转换器设置Retrofit适配器的方式:

mRestAdapter = new RestAdapter.Builder()
                    .setEndpoint(getBaseUrl())
                    .setConverter(new SimpleXMLConverter())
                    .build();

如您所见,我没有使用Gson转换器。我如何设法发布任何JSON?谢谢!


阅读 269

收藏
2020-07-27

共1个答案

一尘不染

创建自定义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)));
2020-07-27