Android 如何在Kotlin中成功发出okHttp请求
问题: 1.请求未命中我的python flask服务器。 2.每当运行此代码时,我的应用程序就会崩溃。 *注意:我已经使用Postman测试了localhost地址,这是成功的 我正在尝试在我的kotlin android应用程序中创建一个okHttp请求。 我已在build.gradle文件中实现了所需的依赖项:Android 如何在Kotlin中成功发出okHttp请求,android,kotlin,get,okhttp,mobile-application,Android,Kotlin,Get,Okhttp,Mobile Application,问题: 1.请求未命中我的python flask服务器。 2.每当运行此代码时,我的应用程序就会崩溃。 *注意:我已经使用Postman测试了localhost地址,这是成功的 我正在尝试在我的kotlin android应用程序中创建一个okHttp请求。 我已在build.gradle文件中实现了所需的依赖项: implementation'com.squareup.okhttp3:okhttp:3.10.0 编辑:我在清单文件中包含了Internet权限 我已经尝试将我的IP作为URL
implementation'com.squareup.okhttp3:okhttp:3.10.0
编辑:我在清单文件中包含了Internet权限
我已经尝试将我的IP作为URL的一部分,以及一些不同的localhost链接,并确定URL不是问题所在。如果我没有弄错的话,应用程序崩溃错误会发生在build()期间,但我无法理解原因 理想情况下,此代码将命中RESTAPI并返回数据(打印为文本) 在我的登录屏幕上。 经过几天的研究和尝试其他请求方法,我无法找到解决方案
val mTextviewResult: TextView = findViewById(R.id.text_view_result)
//http client
var client = OkHttpClient()
val url = "http://localhost:5000/test"
val request = Request.Builder()
.url(url)
.build()
Log.d(request.toString(), ": I build Request")
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
Log.d(url, ": I fail")
e.printStackTrace()
}
@Throws(IOException::class)
override fun onResponse(call: Call, response: Response) {
if (response.isSuccessful()) {
Log.d(url, ": I success")
val myResponse = response.body()?.string()
this@LoginActivity.runOnUiThread(object : Runnable {
override fun run() {
mTextviewResult.setText(myResponse)
}
})
}
}
})
要访问
localhost
,您应该使用localhost
的本地IPv4+服务器端口
如何获取此IPv4:
KOTLIN异步请求:
private val client = OkHttpClient()
fun run() {
val request = Request.Builder()
.url("http://IPv4_FROM_THE_LINK_ABOVE:5000/test")
.build()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
e.printStackTrace()
}
override fun onResponse(call: Call, response: Response) {
response.use {
if (!response.isSuccessful) throw IOException("Unexpected code $response")
for ((name, value) in response.headers) {
println("$name: $value")
}
println(response.body!!.string())
}
}
})
}
安装OkHttp:要访问
localhost
您应该使用本地IPv4+服务器端口访问localhost
如何获取此IPv4:
KOTLIN异步请求:
private val client = OkHttpClient()
fun run() {
val request = Request.Builder()
.url("http://IPv4_FROM_THE_LINK_ABOVE:5000/test")
.build()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
e.printStackTrace()
}
override fun onResponse(call: Call, response: Response) {
response.use {
if (!response.isSuccessful) throw IOException("Unexpected code $response")
for ((name, value) in response.headers) {
println("$name: $value")
}
println(response.body!!.string())
}
}
})
}
Installok http:您是否在清单文件中定义了权限
?有时这是主要问题XD忘了提及这一点,但是的,我没有提及,而且您忘了添加崩溃日志:D这将非常有帮助;)考虑添加一个崩溃日志来获得一个更详细的答案:你在模拟器中使用的是100.2.2吗?您是否在清单文件中定义了权限
?有时这是主要问题XD忘了提及这一点,但是的,我没有提及,而且您忘了添加崩溃日志:D这将非常有帮助;)考虑添加一个崩溃日志来获得一个更详细的答案:你在模拟器中使用的是100.2.2吗?