When I try to do a POST request using khttp, I get this error:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.emir.getirme, PID: 9379
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1448)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:355)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
at java.net.Socket.connect(Socket.java:616)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:145)
at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:141)
at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:112)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:407)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaders(HttpURLConnectionImpl.java:163)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaderFields(HttpURLConnectionImpl.java:223)
at khttp.responses.GenericResponse$Companion.getCookieJar$khttp(GenericResponse.kt:35)
at khttp.responses.GenericResponse$Companion$defaultEndInitializers$3.invoke(GenericResponse.kt:116)
at khttp.responses.GenericResponse$Companion$defaultEndInitializers$3.invoke(GenericResponse.kt:32)
at khttp.responses.GenericResponse$connection$2.invoke(GenericResponse.kt:164)
at khttp.responses.GenericResponse$connection$2.invoke(GenericResponse.kt:30)
at khttp.responses.GenericResponse.openRedirectingConnection$khttp(GenericResponse.kt:124)
at khttp.responses.GenericResponse.getConnection(GenericResponse.kt:163)
at khttp.responses.GenericResponse.getRaw(GenericResponse.kt:207)
at khttp.responses.GenericResponse.getContent(GenericResponse.kt:216)
at khttp.responses.GenericResponse.init$khttp(GenericResponse.kt:350)
at khttp.KHttp.request(KHttp.kt:59)
at khttp.KHttp.post(KHttp.kt:48)
at khttp.KHttp.post$default(KHttp.kt:47)
at com.emir.getirme.MainActivity.onCreate$lambda-1(MainActivity.kt:51)
at com.emir.getirme.MainActivity.lambda$3IBZyc9kPzUSvfk0gsgNPVZ2ETU(Unknown Source:0)
at com.emir.getirme.-$$Lambda$MainActivity$3IBZyc9kPzUSvfk0gsgNPVZ2ETU.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:6256)
at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)
at android.view.View$PerformClick.run(View.java:24701)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
This is my code:
khttp.post(
"http://127.0.0.1:5000/order",
headers = mapOf(
"address" to address.toString(),
"items" to Json.encodeToString(listOf("Su x1", "Gofret x5", "Dondurma x1")),
"price" to "100",
"orderer" to name.toString(),
"phone" to phone.toString()
),
)
I'm trying to send a request to a Flask server running in my local PC. The server is not the problem as I tested it with Python.
The code is not inside an async task or any type of async function. I tried to use khttp.async but I didn't have khttp.async for some reason.
setOnClickListener{}which is inside myAppCompatActivityimgur.com/QGOq28V - Emir Sürmen