如何发布JSON,但使用改装得到XML响应? [英] How to post JSON but get XML response using Retrofit?

查看:106
本文介绍了如何发布JSON,但使用改装得到XML响应?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有希望获得JSON作为后一个特定的web服务,并会吐回一个XML。我使用的是改造为我所有的网络调用。这里是我设置改造适配器与XML转换器:

I have a particular webservice that expects a JSON as post, and will spit back an XML. I'm using Retrofit for all my network calls. Here is how I set the Retrofit adapter with the XML converter:

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

正如你所看到的,我没有使用GSON转换器。如何管理张贴任何JSON?谢谢!

As you can see, I'm not using the Gson converter. How can I manage to post any JSON? Thanks!

推荐答案

创建自定义转换。这将使用不同的转换器,序列化和反序列化。

Create custom Converter. That will use different converters for serialization and deserialization.

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

这篇关于如何发布JSON,但使用改装得到XML响应?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆