Не могу получить данные с url используя Retrofit
MainActivity
class MainActivity : AppCompatActivity() {
lateinit var recyclerView: RecyclerView
lateinit var recyclerAdapter: Adapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
recyclerView = recyclerViewNews
recyclerAdapter = Adapter(this)
recyclerView.layoutManager = LinearLayoutManager(this)
recyclerView.adapter = recyclerAdapter
val apiService = ApiService.create().getNews()
apiService.enqueue(object : Callback<List<News>> {
override fun onResponse(call: Call<List<News>>, response: Response<List<News>>?) {
val body = response?.body()
if(body != null){
recyclerAdapter.setNewsListItems(body)
}
Log.v("checkResponseProfile",response!!.body().toString()+"code"+response.code())
}
override fun onFailure(call: Call<List<News>>, t: Throwable) {
Log.d("Error", "Error")
}
})
}
}
Модель класса
data class News(
var title: String,
var type: String,
var img: String,
var clickUrl: String,
var time: String,
var top: String
)
Интерфейс ApiService
interface ApiService {
@GET("news_array.json")
fun getNews(): Call<List<News>>
companion object {
var BASE_URL = "http://188.40.167.45:3001"
fun create(): ApiService {
val retrofit = Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(BASE_URL)
.build()
return retrofit.create(ApiService::class.java)
}
}
}
Адаптер
class Adapter(val context: Context) : RecyclerView.Adapter<Adapter.ViewHolder>() {
var newsList:List<News> = listOf()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_news, parent, false)
return ViewHolder(view)
}
override fun getItemCount(): Int = newsList.size
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val news = newsList[position]
holder.titleTextView.text = news.title
holder.sourceTextView.text = news.clickUrl
holder.timeTextView.text = news.time
}
fun setNewsListItems(newsList: List<News>){
this.newsList = newsList;
notifyDataSetChanged()
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val titleTextView: TextView = itemView.tvTitle
val sourceTextView: TextView = itemView.tvSource
val timeTextView: TextView = itemView.tvTime
}
}
В логе всплывает проверка onResponse, но видимо responce.body() = null
V/checkResponseProfile: nullcode404