当前位置: 首页 > 知识库问答 >
问题:

Retrofit2标量转换器在gson转换器android之前没有转换

督灿
2023-03-14
Retrofit retrofit = new Retrofit.Builder()
                .addConverterFactory(ScalarsConverterFactory.create())
                .addConverterFactory(GsonConverterFactory.create(gson))
                .baseUrl(IPService.END)
                .client(new OkHttpClient.Builder().build())
                .build();
@POST("/friends/sendRequest")
Call<String> sendFriendRequest(...);
Response<String> a =  myApi.sendFriendRequest(...).execute();

Reponse身体是“成功”。

共有1个答案

慕容灿
2023-03-14

我认为这不可能使用Gson和标量。改型无法识别它是纯字符串响应还是json字符串响应。

我的方法是只使用标量转换器,返回无处不在的字符串,然后用GSON在流中手动转换。

下面的例子在Kotlin中使用RxJava

@GET("{path}")
    fun getVersion(@Path("path") hash: String): Single<String>

api.getVersion()
                .map { val gson =  GsonBuilder()
                        .setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
                        .create()
                        gson.fromJson(it, VersionResponse::class.java)
                }
 类似资料:
  • 主要内容:转换器标签JSF有转换器将其UI组件的数据转换为托管bean中使用的对象,反之亦然。 例如,我们可以将文本转换为日期对象,并且可以验证输入的格式。 要使用转换器标签,我们必须在节点中使用URI的以下命名空间。 转换器标签 以下是JSF 2.0中的重要转换代码: 标签 描述 将字符串转换为所需格式的数字值 将字符串转换为所需的日期格式 自定义转换器 创建一个自定义转换器

  • 我在android studio中建立了一个转换器,当我每次按转换按钮时,距离部分(activity)就会崩溃。该应用程序说,特定的activity已经停止工作,该应用程序回到主要的activity。在android studio中没有显示任何错误,我想我的问题可能是在使用旋转器中的int pos,但我不确定。这是我最后要完成的元素。请帮帮忙。下面是Java,后面是XML。 和xml null

  • 问题内容: 我遵循此示例在Spring中设置TCP客户端。下面是变压器所在的我的文件。有人可以帮助我删除变压器并按原样发送数据吗?如果我尝试删除该行甚至将其设置为null,则在构建项目时会遇到异常。 编辑: 现在,我可以使用自定义的序列化器/解串器发送消息了。但是很遗憾,我无法收到回复。这是我的序列化器/反序列化器: 我在序列化器/反序列化器的第一行完成了一些日志记录,但是从未打印过该日志。反过来

  • 如果我尝试切换添加转换器的顺序,我将在接收XML时得到类似的错误(显然,因为Gson转换器试图转换XML响应): 我可以做什么来使每个转换器转换适当的响应? UPD:根据Marcin Jedynak的建议,我做了以下几点:

  • JSF提供内置转换器,将其UI组件的数据转换为托管bean中使用的对象,反之亦然。 例如,这些标签可以将文本转换为日期对象,也可以验证输入的格式。 对于这些标记,您需要在html节点中使用以下URI名称空间。 <html xmlns = "http://www.w3.org/1999/xhtml" xmlns:f = "http://java.sun.com/jsf/core"

  • 如果您需要在Aurelia应用程序中转换某些值,则可以使用converters而不是手动将值转换为所需的格式。 转换日期 当我们想要将默认日期值转换为某种特定格式时,我们可以使用momentJS库。 这是一个用于操作日期的小型库。 C:\Users\username\Desktop\aureliaApp>jspm install moment 让我们创建一个新文件converters.js 。