помогите мне в этом вопросе, пожалуйста, я хочу получить данные от API
{
"status": true,
"data": [
{
"id_pelanggan": "456",
"nama_pelanggan": "ahmad",
"alamat": "taliwang"
},
{
"id_pelanggan": "457",
"nama_pelanggan": "ahmad",
"alamat": "taliwang"
}
]}
это мой объект API для настройки для динамического c класса, retrofit2 и gson
object Api {
private val BASE_URL: String = BuildConfig.API_SRAPP
private var gson = GsonBuilder().setLenient().create()
private val httpClient = OkHttpClient.Builder()
fun <T>service(java: Class<T>): T{
val retrofit = Retrofit.Builder()
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson))
.baseUrl(BASE_URL)
.client(httpClient.build())
.build()
return retrofit.create(java)
}
}
это мой класс BaseRespon для обработки всех данных из API и с Dynami c класс
data class BaseResponse<T>(
val status: Boolean,
val data: T?
)
это мой класс Customer
data class Customer (
@SerializedName("id_pelanggan")
@Expose
val idPelanggan: String,
@SerializedName("nama_pelanggan")
@Expose
val namaPelanggan: String,
@SerializedName("alamat")
@Expose
val alamat: String
)
это мой сервис API
interface CustomerServices {
@GET("customer")
fun getAllCustomer(@Header("Authorization") auth: String): Call<BaseResponse<ArrayList<Customer>>>
@GET("customer")
fun getCustomerbyID(@Header("Authorization") auth: String, @Query("id") id: String): Call<BaseResponse<Customer>>
}
и это мой класс по использованию API
class CustomerPresenter {
fun loadAllCustomer(){
apiCustomer.getAllCustomer(OfflineHelper.getToken())
.enqueue(object : Callback<BaseResponse<ArrayList<Customer>>>{
override fun onFailure(call: Call<BaseResponse<ArrayList<Customer>>>, t: Throwable) {
Log.e("allCustomer", "${t.message}")
}
override fun onResponse(
call: Call<BaseResponse<ArrayList<Customer>>>,
response: Response<BaseResponse<ArrayList<Customer>>>
) {
saveLocalCustomer(response.body())
}
})
}
fun saveLocalCustomer(data: BaseResponse<ArrayList<Customer>>?){
Log.w("loadedAll", "${data?.status}")
}
и у меня сбой журнала в loadAllCustomer
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 2 column 1 path $
Я не понимаю, почему это сбой, мой конечная точка не опечатка, и я проверил ее на почтальоне