@foonfyrick

Retrofit, не понимаю что должно произойти при посте, правильно делаю?

Я так понимаю аннотацией POST помечается метод, который должен отправить данные на сайт, вот я понять не могу, у меня что-то отправляется в методе getUserItemPost() или ничего не происходит и он просто в логах выводится?
//интерфейс 
    @GET("/posts")
    fun getCompany(): Call<MutableList<UserItem>>

    @POST("posts")
    fun getPost(@Body useritem:UserItem):Call<UserItem>

//pojo
data class UserItem(
    val body: String,
    val id: Int,
    val title: String,
    val userId: Int
)

//объект
object MyService {
    val createConnect = getConnect().create(IApi::class.java)
    fun getConnect(): Retrofit {
        val retrofit by lazy {
            Retrofit
                .Builder()
                .baseUrl("https://jsonplaceholder.typicode.com/")
                .addConverterFactory(GsonConverterFactory.create())
                .build()
        }
        return retrofit
    }
}

//получение данных со страницы и вывод в логи
    fun doGetRetrofit(){
        CoroutineScope(Dispatchers.IO).launch {
            val company = mIApi.getCompany()
            company.enqueue(object : Callback<MutableList<UserItem>> {
                override fun onFailure(call: Call<MutableList<UserItem>>, t: Throwable) {}
                override fun onResponse(
                    call: Call<MutableList<UserItem>>,
                    response: Response<MutableList<UserItem>>
                ) {
                    response.body()?.forEach {
                        Log.e("Company: ", it.id.toString())
                    }
                }

            })

        }
    }
//пытаюсь отправить данные и вывести их в логи
    fun getUserItemPost(){
        val post = mIApi.getPost(UserItem("telo",11111,"title",22222))
        post.enqueue(object : Callback<UserItem> {
            override fun onFailure(call: Call<UserItem>, t: Throwable) {}
            override fun onResponse(call: Call<UserItem>, response: Response<UserItem>) {
                response.body()?.body?.let { Log.e("///////// OTVET ////////////", it) }
            }

        })
    }
}
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Очевидно, если onResponse отрабатывает, и в лог что-то выводится, значит метод работает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы