我尝试使用 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 密钥。 我认为这可能是网络问题,因为我已经在另一个网络上运行了一次,但它不再运行了