GET请求在浏览器上有效,但在带有改装的Android应用程序上失败



我正在尝试使用GET请求从API请求数据。它在浏览器上运行良好,因为我可以看到JSON响应,但当我试图在Android应用程序上使用相同的请求时,我会从响应中得到一条禁止消息,没有JSON对象。我正在为我的GET请求使用改装。使用改装时,我是否正确格式化了请求?这是的URL

http://www.omdbapi.com/?i=tt3896198&apikey=MY_API_KEY

我的ApiService文件

private const val BASE_URL = "http://www.omdbapi.com"

private val retrofit = Retrofit.Builder()
.addConverterFactory(ScalarsConverterFactory.create())
.baseUrl(BASE_URL)
.build()

interface MovieApiService {
@GET("/")
fun getMovieInfo(@Query("i") imdbID: String, @Query("apikey") key: String): Call<String>
}

我的功能

private fun getMovieInfo() {
val apiKey = BuildConfig.API_KEY
MovieApi.retrofitService.getMovieInfo("tt3896198", apiKey).enqueue(
object : Callback<String> {
override fun onResponse(call: Call<String>, response: Response<String>) {
_response.value = response.message()
}
override fun onFailure(call: Call<String>, t: Throwable) {
_response.value = "Failure: ${t.message}"
}
}
)
}

我认为问题是API密钥运行不正常,因此它被禁止进入。以下是我建议您尝试的方法

private const val BASE_URL = "https://omdbapi.com/"

private val retrofit = Retrofit.Builder()
.addConverterFactory(ScalarsConverterFactory.create())
.baseUrl(BASE_URL)
.build()

interface MovieApiService {
@GET("?apikey=your_api_key")  // Add your API key directly here
fun getMovieInfo(@Query("i") imdbID: String): Call<String>
}

您的密钥直接附在此处的请求中,我们稍后将添加您的查询。

相关内容

  • 没有找到相关文章

最新更新