У меня очень базовые знания, но в основном у меня есть кнопка, у которой есть прослушиватель, и когда эта кнопка нажата, она должна отправлять GET-запрос на определенный URL-адрес, но каждый раз, когда я нажимаю кнопку, просто вылетает мое приложение, logcat не 'не говоря уже о проблеме и просто показывает, что приложение закрыто.
I/System: core_booster, getBoosterConfig = false
I/Process: Sending signal. PID: 18019 SIG: 9
Я пытался использовать несколько библиотек, но все они, похоже, имеют тот же результат, когда он просто падает, я дал ему разрешения на доступ в Интернет, поэтому он долженбудьте хороши с этой стороны, библиотека, которую я сейчас использую в этой версии: khttp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import khttp.get
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
botao_off_1.setOnClickListener {
val ipAddress = get(url = "http://192.168.1.1/27/off").jsonObject.getString("origin")
}
}
}
Предполагается, что она очень проста для бэкэнда и имеет только несколько кнопок.
Я ожидалчтобы можно было просто выполнить запрос, IP-адрес и вся остальная информация должны быть правильными, но он просто дает сбой.
РЕДАКТИРОВАТЬ: Только некоторые вещи я взял опубликованный код DHAVAL ASODARIYA и адаптировал его, это быловсе еще падает, но мне удается отследить проблему до ConnectException, поэтому я просто пытаюсь перехватить ее каждый раз, когда я делаю запроси теперь это работает как масло.
извините за грязный код
это просто часть, которая на самом деле делает что-нибудь
override fun doInBackground(vararg params: Any?) {
try {
val url = params[0]
val ipAddress = get(url as String)
}
catch (e: ConnectException) {}
}
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
this.botao_off_1.setOnClickListener {
EnviarGet().execute("http://192.168.1.1/27/off")
}
}
}