data class NewsResponse(
val articles: List<Article>,
val status: String,
val totalResults: Int
)
data class Source(
val id: String,
val name: String
)
data class Article(
val author: String,
val content: String,
val description: String,
val publishedAt: String,
val source: Source,
val title: String,
val url: String,
val urlToImage: String
)
object RetrofitHelper {
fun getInstances():Retrofit{
return Retrofit.Builder()
.baseUrl("https://newsapi.org/")
.addConverterFactory(GsonConverterFactory.create())
.build()
}
}
interface NewsService {
@GET("v2/everything?")
suspend fun getNews(@Query("country")country:String,@Query("page")page:Int,@Query("apiKey")apiKey:String):Response<NewsResponse>
}
This below code is written on MainActivity
val newsservice=RetrofitHelper.getInstances().create(NewsService::class.java)
GlobalScope.launch(Dispatchers.IO) {
val result=newsservice.getNews(country,page, apiKey)
if(result.isSuccessful){
Toast.makeText(this@MainActivity,"HEllo World",Toast.LENGTH_LONG).show()
val list=result.body()!!.articles
list.forEach {
Log.d(debug,it.source.id)
}
}
}
I corrected my mistake @Query("country") this was wrong i have to use @Query("q") thats my result giving null list