通话翻新问题

时间:2018-12-10 16:34:16

标签: android kotlin retrofit2

我是kotlin的新手,它是我的首次应用测试。我尝试进行改造呼叫(POST),但是在创建代码时出现sintax错误。

我的语法错误:回调没有预期的类型参数

这是我在演示者层上的doLogin函数(我在这里遇到错误):

override fun doLogin() {
    val call = RetrofitInitializer().loginApiContract().login()

    call.enqueue(object: Callback<UserAccount> {
        override fun onResponse(call: Call<UserAccount>?,
                                response: Response<UserAccount) {
        }

        override fun onFailure(call: Call<UserAccount>?,
                               t: Throwable?) {
        }
    })
}

那是我的改造初始化程序:

class RetrofitInitializer {

    private val retrofit = Retrofit.Builder()
        .baseUrl("http://192.168.0.23:8080/")
        .addConverterFactory(GsonConverterFactory.create())
        .build()

    fun loginApiContract() : LoginApiContract{
        return retrofit.create(LoginApiContract::class.java)
    }

}

这是我的通话界面:

interface LoginApiContract {

    @POST("login")
    fun login() : Call<UserAccount>

    @GET("statements")
    fun getStatements()
}

1 个答案:

答案 0 :(得分:1)

kotlin的最佳实践-使用rxjava calladapter工厂。

尝试添加依赖项

编译“ com.squareup.retrofit2:adapter-rxjava2:”

并添加呼叫适配器工厂

private val retrofit = Retrofit.Builder()
        .baseUrl("http://192.168.0.23:8080/")
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
        .addConverterFactory(GsonConverterFactory.create())
        .build()