我想把数据发送到服务器,但它得到了这个异常:com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造retrofit2.Call
的实例(不存在像默认构造一样的创建者(:抽象类型要么需要映射到具体类型,具有自定义反序列化程序,要么包含其他类型信息尽管如此,服务器还是给了我HttP 200
我读了很多书,但我不能解决这个问题
更新:当我使用Call<gt;在我的界面中
Object class:
data class CrmLeadActivityApiModel(
@JsonProperty("oid")var oid: String = "",
@JsonProperty("Subject") var subject: String? = null,
@JsonProperty("StartOn") var startOn: Date = Date(),
@JsonProperty("EndOn") var endOn: Date = Date(),
@JsonProperty("Recurrence") var recurrence: Boolean = false,
@JsonProperty("CrmOpportunityOid") var crmOpportunityOid: String = "",
@JsonProperty("Location") var location: String? = null,
@JsonProperty("Description") var description: String? = null,
@JsonProperty("SendNotificationToParticipant") var sendNotificationToParticipants: Boolean = false,
@JsonProperty("SyncStatus") var syncStatus: Int? = null,
) {}
api:
@POST("crm/saveActivities")
suspend fun sendCrmLeadActivities(@Body crmLeadActivities: List<CrmLeadActivityApiModel>) : Call<List<ResponseBody>>
Retrofit:
var builder = OkHttpClient.Builder()
builder = BuildTypeInitializations.setupInterceptor(builder)
val objectMapper = ObjectMapper().registerModule(KotlinModule())
objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true)
val factory = JacksonConverterFactory.create(objectMapper)
builder
.addInterceptor(CustomResponseInterceptor(authApi,prefManager))
.readTimeout(1, TimeUnit.MINUTES)
.writeTimeout(1, TimeUnit.MINUTES)
.connectTimeout(1, TimeUnit.MINUTES)
.retryOnConnectionFailure(true)
return Retrofit.Builder()
.baseUrl(url)
.addConverterFactory(factory)
.client(builder.build())
.build()
.create(CrmApi::class.java)
我犯了一个错误,因为我使用了suspend关键字az Call<gt;同时,在我删除了suspend关键字之后,错误就消失了。