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

无法在翻新中为类创建@body转换器

林正平
2023-03-14

我有一个这样的改装实例

val moshi = Moshi.Builder()
        .add(SkipBadElementsListAdapter.Factory)
        .add(KotlinJsonAdapterFactory())
        .add(Date::class.java, MoshiDateAdapter())
        .build()

val okHttpClient = createHttpClientBuilder()
        .build()

return Retrofit.Builder()
        .client(okHttpClient)
        .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
        .addConverterFactory(MoshiConverterFactory.create(moshi))
        .baseUrl(Interactors.apiEndpoint)
        .build()
        .create(UserApiClient::class.java)
internal open class QuizAnswerDto(
        @Json(name = "questionOrder") val questionOrder: Int?,
        @Json(name = "questionKind") val type: String?,
        @Json(name = "questionId") val questionId: String?,
        @Json(name = "response") val response: Any?,
        @Json(name = "order") val answerOrder: Int?,
        @Json(name = "text") val answerText: String?,
        @Json(name = "responses") val answersMap: Map<Int, String>?){
    companion object {
        const val ANGRY_ID = 0
        const val UPSET_ID = 1
        const val NEUTRAL_ID = 2
        const val SATISFIED_ID = 3
        const val HAPPY_ID = 4
        const val UNKNOWN = -1

        const val LIKE_DISLIKE= "yes_no"
        const val SENTIMENT ="viewer_sentiment"
        const val SINGLE_ANSWER="multiple_choice"
        const val MULTIPLE_ANSWERS="select_all_that_apply"
        const val SHORT_ANSWER="short_answer"
    }
}
@POST("campaigns/influencer/sponsorships/watchandrespond/{influencerSponsorshipId}/answers")

@JvmSuppressWildcards
fun submitAnswers(@Path("influencerSponsorshipId") influencerSponsorshipId: String,
                      @Body request: List<QuizAnswerDto>): Completable

参数#2(questionKind)总是伴随对象中的常量字符串之一,我不知道它在说什么“类型变量或通配符”。我做错了什么?

共有1个答案

应俭
2023-03-14

从moshi文献中

val moshi = Moshi.Builder()
    .addLast(KotlinJsonAdapterFactory())
    .build()

KotlinJsonAdapterFactory应作为生成器中的最后一个添加。这也许能解决你的问题。

 类似资料:
  • 我的请求类: ) 这里还有一点需要提及的是,使用GSONConverterFactory时,它工作得很好,但当我切换到MoshiConverterFactory时,它会抛出错误。

  • 但每次我都收到异常:创建@body转换器 我怎么送?或者其他我能做到的想法。您甚至可以向我提供包含json的简单参数。这对我很合适

  • 我在MoshiConverterFactory和restfit上遇到了一个问题--我不能将POST JSON请求发送到RestAPI,因为它总是导致错误。我可以用Multipart成功地做到这一点,但API不支持它,所以这是不可能的... 我已经尝试做了什么:在我的AuthData类的参数上添加注释(错误仍然相同),传递多部分和表单URL编码的数据(API不支持)。有人看到我做错了什么吗?我也没有

  • 我在我的应用程序和Gson转换器中使用了改型。我想使用数据库时,没有互联网连接。我决定用糖兽。但我得到一个。 java.lang.IllegalArgumentException:无法为类创建转换器

  • 我正在尝试用改进的方法来开发clent-server应用程序。我的应用程序用字符串“image”发送到服务器json,并用字段“name”的字符串响应json。 我的API: 2).AddCallAdapterFactory(gsonConverterFactory.create())在Retorfit和retorfit2中强调了错误程度。 3)如果删除.AddCallAdapterFactory

  • 我在使用ActiveAndroid对API调用和数据库进行修改。在Pre6.0的Android设备上,一个应用程序可以很好地工作。无法确定根本原因。 改装2 Beta-4。Android6。无法创建转换器 我不明白为什么要使用gson或gsonbuilder? 感谢任何帮助。