Kotlin Android 上的 GET 请求无法解析 url

问题描述 投票:0回答:0

我尝试使用 OkHTTP 从网站 https://api.api-ninjas.com/v1/city?name=Moscow 的 api 获得响应并收到此错误: 消息:无法解析主机“api.api-ninjas.com”:没有与主机名关联的地址

val client = OkHttpClient()
val url = "https://api.api-ninjas.com/v1/city?name=$cityName"
val request = Request.Builder()
    .url(url)
    .addHeader("X-Api-Key", apiKey)
    .build()
Log.d("CityName", cityName)
var response__ : Response
var latitude = 0
var longitude = 0
client.newCall(request).enqueue(object : Callback {
        override fun onFailure(call: Call, e: IOException) {
            Log.e("Exception", "Message: ${e.message}")
            Log.d("FAIL", "")
            // Handle error
        }

        override fun onResponse(call: Call, response: Response) {
            Log.d("RESPONSE", response.code.toString())
            Log.d("RESPONSE_HEADERS", response.headers.toString())
            val responseBodyString = response.body?.string()
            if (responseBodyString != null) {
                Log.d("RESPONSE_BODY", responseBodyString)
            }
            response__ = response
            latitude =
                getNextWordAfterTriggerWord(response.body?.byteStream(), "latitude")?.toIntOrNull()
                        ?: 0
            longitude =
                getNextWordAfterTriggerWord(response.body?.byteStream(), "longitude")?.toIntOrNull()
                        ?: 0
        }
})

我已经尝试使用一个名为 Postman 的应用程序来检查响应是否正常。响应确实没问题,但在 kotlin 上它不起作用并在 logcat 中发送此错误。 API 密钥是正确的,因为在应用程序 Postman 中,我使用了与我的代码中完全相同的 API 密钥。 我认为这可能是网络问题,因为我已经在另一个网络上运行了一次,但它不再运行了

android kotlin request get okhttp
© www.soinside.com 2019 - 2024. All rights reserved.