当前位置: 首页 > 面试题库 >

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

李胤
2023-03-14
问题内容

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

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

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


问题答案:

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


 类似资料:
  • 如何将此Json响应转换为改装bean我得到了Gson错误,就像使用JsonReader一样。setLenient(true)在第1行第1列路径接受格式错误的JSON$ api调用为 字符串CATEGORY\u API=“”https://api.callingservice.com"; 请帮助我解决这个问题,如何将Json响应转换为Bean,我的Bean类如下

  • 我用Rocket编写了一个简单的web服务,每当数据作为200响应出现时,它都包含一个字符串向量。当出现错误时,我希望有自定义错误。我想对这些反应施加的结构应该如下所示https://stackoverflow.com/a/23708903/4402306,具体而言: 对于成功的响应: 对于错误: 对于错误,我混淆了在火箭中使用与实现我自己的错误结构,如枚举(使用火箭派生): 那么我应该用什么来实

  • 问题内容: 我有一个带有JSON响应的网络查询: 我将以下代码用于: 在调试器中,Retrofit库进行的查询是正确的,但是作为响应,我得到了一个空的JSON。 问题答案: 代替使用JSONObject类进行回调,您可以使用Retrofit基本回调,该基本回调使用Response类,然后,一旦获得响应,就必须从中创建JSONObject。 否则,您可以创建自己的模型类来处理响应。 首先是Resul

  • 前天我开始了解斯威格。太棒了。但可能是因为我缺乏知识,有些事情我做不到。我努力想解决它,最后我把它作为一个问题放在这里。 我的pom.xml 我添加了这个依赖项。我的servlet上下文。xml如下所示。我确实绑定了swagger配置bean并启用了此配置。 制造一种狂妄自大的姿态。具有以下项的属性。 并以包含任何其他属性文件的方式将其包含在myapplication上下文中。 我的控制器记录ap

  • 我试图从Web读取JSON数据,但该代码返回空结果。我不确定我做错了什么。

  • 问题是这个。我正在发送音乐文件。我一直收到错误消息422。由于这个原因,我似乎无法正确定位我的身体 和我的代码 并调用此方法 我还发现这个东西 通过Reform2将文件作为对象发送到服务器 在我看来,问题是该字段看起来像“音频[文件]” 谢谢你的帮助