Ошибка kotlin Ожидался BEGIN_OBJECT, но было STRING в строке 1, столбце 1, пути $ ⇐ Android
-
Anonymous
Ошибка kotlin Ожидался BEGIN_OBJECT, но было STRING в строке 1, столбце 1, пути $
ошибка: ожидался BEGIN_OBJECT, но в строке 1, столбце 1, пути $
было STRING
Я пытаюсь подключиться к API с помощью Retrofit2, но постоянно получаю ошибки. Но эта ошибка не появляется постоянно, но ошибка не появляется и после успешной связи.
val gson = GsonBuilder().setLenient().create() val Retrofit = Retrofit.Builder() .baseUrl("BASE_URL") .addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create(gson)) .строить() val aService:AService = Retrofit.create(AService::class.java) val apiKey = BuildConfig.MY_KEY val aCall = aService.getInfo(apiKey, "1","50",aName,"") если (dataList.isNotEmpty()) { dataList.clear() } Log.d("API_Request", "URL: ${aCall.request().url}") aCall.enqueue(объект: Callback{ переопределить fun onResponse(call: Call, ответ: Response) { данные вал = ответ.тело() val aList = данные?.body?.items если (!aList.isNullOrEmpty()) { aList.let {информация -> info.forEach { dataList.add(оно) } } адаптер.notifyDataSetChanged() } } переопределить fun onFailure(call: Call, t: Throwable) { Log.e("API_Request_Failure", "Ошибка: ${t.message}", t) } }) Когда я использовал Log.d ("API_Request", "URL: ${aCall.request().url}") для сравнения значений URL-адресов при успешной и неудачной связи. Ценности были те же.
Я пытался сравнить значения ответа с помощью функции onResponse, но мне не удалось проверить значения ответа, поскольку в случае возникновения ошибки они передаются в функцию onFailure. Что мне делать в этом случае? Код сервиса:
интерфейс AService { @GET("конечная_точка") весело получить информацию( @Query("serviceKey") serviceKey : строка, @Query("pageNo") pageNo : строка, @Query("numOfRows") numOfRows : строка, @Query("itemName") itemName : строка, @Query("efcyQesitm") efcyQesitm : Строка, Тип @Query("type"): String = "json" ): Вызов } AИнформационный код:
import com.google.gson.annotations.SerializedName класс данных AInfo( @SerializedName("тело") val body: Тело?, @SerializedName("заголовок") val заголовок: Заголовок? ) Заголовок класса данных( @SerializedName("Код результата") val resultCode: String?, @SerializedName("resultMsg") val resultMsg: String? ) класс данных Тело( @SerializedName("предметы") val элементы: List?, @SerializedName("numOfRows") значение numOfRows: Int?, @SerializedName("Нет страницы") val pageNo: Int?, @SerializedName("totalCount") вал TotalCount: Int? ) класс данных Item( @SerializedName("atpnQesitm") val atpnQesitm: Строка?, @SerializedName("atpnWarnQesitm") val atpnWarnQesitm: Есть?, @SerializedName("бизнесно") val bizrno: Строка?, @SerializedName("depositMethodQesitm") val DepositMethodQesitm: String?, @SerializedName("efcyQesitm") val efcyQesitm: Строка?, @SerializedName("entpName") val entpName: String?, @SerializedName("intrcQesitm") val intrcQesitm: Строка?, @SerializedName("itemImage") val itemImage: String?, @SerializedName("ИмяЭлемента") val itemName: Строка?, @SerializedName("itemSeq") val itemSeq: String?, @SerializedName("openDe") val openDe: String?, @SerializedName("seQesitm") val seQesitm: Строка?, @SerializedName("updateDe") val updateDe: String?, @SerializedName("useMethodQesitm") val useMethodQesitm: String? )
ошибка: ожидался BEGIN_OBJECT, но в строке 1, столбце 1, пути $
было STRING
Я пытаюсь подключиться к API с помощью Retrofit2, но постоянно получаю ошибки. Но эта ошибка не появляется постоянно, но ошибка не появляется и после успешной связи.
val gson = GsonBuilder().setLenient().create() val Retrofit = Retrofit.Builder() .baseUrl("BASE_URL") .addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create(gson)) .строить() val aService:AService = Retrofit.create(AService::class.java) val apiKey = BuildConfig.MY_KEY val aCall = aService.getInfo(apiKey, "1","50",aName,"") если (dataList.isNotEmpty()) { dataList.clear() } Log.d("API_Request", "URL: ${aCall.request().url}") aCall.enqueue(объект: Callback{ переопределить fun onResponse(call: Call, ответ: Response) { данные вал = ответ.тело() val aList = данные?.body?.items если (!aList.isNullOrEmpty()) { aList.let {информация -> info.forEach { dataList.add(оно) } } адаптер.notifyDataSetChanged() } } переопределить fun onFailure(call: Call, t: Throwable) { Log.e("API_Request_Failure", "Ошибка: ${t.message}", t) } }) Когда я использовал Log.d ("API_Request", "URL: ${aCall.request().url}") для сравнения значений URL-адресов при успешной и неудачной связи. Ценности были те же.
Я пытался сравнить значения ответа с помощью функции onResponse, но мне не удалось проверить значения ответа, поскольку в случае возникновения ошибки они передаются в функцию onFailure. Что мне делать в этом случае? Код сервиса:
интерфейс AService { @GET("конечная_точка") весело получить информацию( @Query("serviceKey") serviceKey : строка, @Query("pageNo") pageNo : строка, @Query("numOfRows") numOfRows : строка, @Query("itemName") itemName : строка, @Query("efcyQesitm") efcyQesitm : Строка, Тип @Query("type"): String = "json" ): Вызов } AИнформационный код:
import com.google.gson.annotations.SerializedName класс данных AInfo( @SerializedName("тело") val body: Тело?, @SerializedName("заголовок") val заголовок: Заголовок? ) Заголовок класса данных( @SerializedName("Код результата") val resultCode: String?, @SerializedName("resultMsg") val resultMsg: String? ) класс данных Тело( @SerializedName("предметы") val элементы: List?, @SerializedName("numOfRows") значение numOfRows: Int?, @SerializedName("Нет страницы") val pageNo: Int?, @SerializedName("totalCount") вал TotalCount: Int? ) класс данных Item( @SerializedName("atpnQesitm") val atpnQesitm: Строка?, @SerializedName("atpnWarnQesitm") val atpnWarnQesitm: Есть?, @SerializedName("бизнесно") val bizrno: Строка?, @SerializedName("depositMethodQesitm") val DepositMethodQesitm: String?, @SerializedName("efcyQesitm") val efcyQesitm: Строка?, @SerializedName("entpName") val entpName: String?, @SerializedName("intrcQesitm") val intrcQesitm: Строка?, @SerializedName("itemImage") val itemImage: String?, @SerializedName("ИмяЭлемента") val itemName: Строка?, @SerializedName("itemSeq") val itemSeq: String?, @SerializedName("openDe") val openDe: String?, @SerializedName("seQesitm") val seQesitm: Строка?, @SerializedName("updateDe") val updateDe: String?, @SerializedName("useMethodQesitm") val useMethodQesitm: String? )
Мобильная версия