为啥我没有得到任何回应
Posted
技术标签:
【中文标题】为啥我没有得到任何回应【英文标题】:why i am not getting any response为什么我没有得到任何回应 【发布时间】:2022-01-11 07:59:04 【问题描述】: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>
以下代码是在 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)
【问题讨论】:
抛出了哪个错误?你提供任何日志吗? 我的 TAG debug 的 logcat 中没有错误但没有显示任何内容 Toast.makeText(this@MainActivity,"Hello World",Toast.LENGTH_LONG).show() 必须在 UI 线程或主线程上显示。在这种情况下,您尝试在后台线程中显示 toast 并使用 try catch 块捕获错误。 在 else 块中添加一条日志语句到result.isSuccessful
。看看能不能打印出来。
【参考方案1】:
我纠正了我的错误@Query("country") 这是错误的我必须使用@Query("q") 那是我给出空列表的结果
【讨论】:
以上是关于为啥我没有得到任何回应的主要内容,如果未能解决你的问题,请参考以下文章