我想制作一个通过按下按钮发送http请求的应用程序,但它不起作用

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

我正在使用 okhttp3 发送请求,它只工作一次,按下任何其他按钮都不会执行任何操作

 private fun makeGetRequest() {

            val client = OkHttpClient()
            val request = Request.Builder().url("http://192.168.1.54/trigger").build()
            val textView = findViewById<TextView>(R.id.textView)

        client.newCall(request).enqueue(object : okhttp3.Callback {
            override fun onFailure(call: Call, e: IOException) {
                runOnUiThread {
                    textView.text = "failed to send request"
                }

            }

            override fun onResponse(call: Call, response: Response) {
                if (response.isSuccessful) {
                    runOnUiThread {
                        textView.text = response.body.toString()

                    }

                }
            }

            })
        
    }

如果有人可以帮助我,我将非常感激 我已经坚持了这么久了

我尝试清除缓存,以编程方式重新启动应用程序,但没有任何效果

android kotlin
1个回答
0
投票

请分享代码和错误,以便我们更好地帮助您。 但我猜问题出在另一个按钮请求地址的 HTTP 协议上。

  1. 您需要将互联网权限添加到您的清单文件中:
<uses-permission android:name="android.permission.INTERNET" />
  1. 要使用 HTTP 协议(不是 HTTPS),您需要将此代码添加到清单文件中:
<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">192.168.1.54</domain>
  </domain-config>
</network-security-config>

通常,出于安全原因,Android 不允许您通过 HTTP 协议发送请求。所以你需要添加上面的代码并定义你需要访问的域名或IP地址。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.