Я пытаюсь получить JsonObject с Retrofit, используя Moshi для разбора, но продолжаю сталкиваться с ошибкой 403. Я могу получить доступ к запросу из своего браузера, так что я почти уверен, что я что-то не так делаю в моей настройке здесь ...
object RetrofitFactory {
private val moshi = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
fun makeRetrofitService(): Retrofit =
Retrofit.Builder()
.addConverterFactory(MoshiConverterFactory.create(moshi))
.addCallAdapterFactory(CoroutineCallAdapterFactory())
.baseUrl("http://url.to.destination/")
.build()
}
interface MyApiService {
@GET("products.json")
fun getPropertiesAsync(): Deferred<List<ProductProperty>>
}
object MyApi {
val retrofitService: MyApiService by lazy {
RetrofitFactory.makeRetrofitService().create(MyApiService::class.java)
}
}
Сам JsonObject (products.json) начинается с внешнего объекта «внешний», например:
{
outer : [
{inner object1},
{inner object2},
{inner object3}
]
}
, но попытка получить «products.json / outer» выдает ошибку 403, а попытка получить «products.json» говорит:
com.squareup.moshi.JsonDataException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at path $
Есть идеи, что я делаю не так?