gpt4 book ai didi

android - Retrofit2标量转换器在gson转换器android之前不转换

转载 作者:行者123 更新时间:2023-12-03 21:33:44 25 4
gpt4 key购买 nike

我在Android中有以下retrofit2,首先是标量转换器工厂,然后是gson转换器,但是当我调用字符串调用并且响应以字符串形式出现时,它给了我一个异常(exception)“不是JSON对象:”成功“。

我错过了什么吗?

改造创作:

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

响应正文是“成功”。

最佳答案

我认为这是不可能使用 Gson 和 Scalar 的。 Retrofit 无法识别它是纯字符串响应还是 json 字符串响应。

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

下面是使用 RxJava 的 Kotlin 示例

@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)
}

关于android - Retrofit2标量转换器在gson转换器android之前不转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39246169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com