I want to send an HTTP request with android (cyberforum took as an example). I read somewhere that it is better to do this through AsyncTask, but nothing comes out.
Code:
package ssamvel.httpexes import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.TextView import kotlinx.android.synthetic.main.activity_main.* import java.io.BufferedReader import java.io.InputStream import java.io.InputStreamReader import java.net.HttpURLConnection import java.net.URL import java.nio.charset.Charset import javax.xml.datatype.DatatypeConstants.SECONDS import android.os.AsyncTask import ssamvel.httpexes.R.id.textView import java.io.BufferedInputStream class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun hello(view: View) { val task = CatTask() task.execute() } internal inner class CatTask : AsyncTask<Void, Void, Void>() { override fun onPreExecute() { super.onPreExecute() } override fun doInBackground(vararg params: Void): Void? { var urlConnection: HttpURLConnection var url = URL("http://www.cyberforum.ru") urlConnection = url.openConnection() as HttpURLConnection var reader = BufferedReader(InputStreamReader(urlConnection.inputStream)) return null } override fun onPostExecute(result: Void?) { super.onPostExecute(result) } } } At asynchronous start the error gets out:
3987-5800 / ssamvel.httpexes E / AndroidRuntime: FATAL EXCEPTION: AsyncTask # 1 Process: ssamvel.httpexes, PID: 3987
With synchronous:
8253-8253 / ssamvel.httpexes E / AndroidRuntime: FATAL EXCEPTION: main Process: ssamvel.httpexes, PID: 8253 java.lang.IllegalStateException: Could not follow the method for android: onClick at android.support.v7.app.AprCath repamptmatshim, you need to be supported and you need to be able to access android: .onClick (AppCompatViewInflater.javaUE89) at android.view.View.performClick (View.java:5610) at android.view.View $ PerformClick.run (View.java:22265) at android.os.Handler.handleCallback ( Handler.java:751) at android.os.Handler.dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:154) at android.app.ActivityThread.main (ActivityThread.java:6077 ) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main (ZygoteInit .java: 756) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke (Native Method) at android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick (AppCo mpatViewInflater.javaUE84) at android.view.View.performClick (View.java:5610) at android.view.View $ PerformClick.run (View.java:22265) at android.os.Handler.handleCallback (Handler.java : 751) at android.os.Handler.dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:15 at 4) at android.app.ActivityThread.main (ActivityThread.java:6077) at java .lang.reflect.Method.invoke (Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java: 756) Caused by: android.os.NetworkOnMainThreadException at android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork (StrictMode.java:1303) at java.net.Inet6AddressImpl.lookupHostByName (Inet6AddressImpl.java, in our app, in the service, in your service, in the use of our service, and you want to make it up. (Inet6AddressImpl.java:74) at java.net.InetAddress.getAllByName (InetAddress.java:752) at com.android.okhttp.internal.Network $ 1.resolveInetAddresses (Network.java:29) at com.android.okhttp.internal .http.RouteS elector.resetNextInetSocketAddress (RouteSelector.java:187) at com.android.okhttp.internal.http.RouteSelector.nextProxy (RouteSelector.java:156) at com.android.okhttp.internal.http.RouteSelectr.extrapt.extlectr.jpl.http.in and.http.RouteSelectr.jpx.RouteSelector.jVoht.extEelectr.jpx.html. 98) at com.android.okhttp.internal.http.HttpEngine.createNextConnection (HttpEngine.java Tuning 45) at com.android.okhttp.internal.http.HttpEngine.connect (HttpEngine.java:328) at com.android.okhh.http .internal.http.HttpEngine.sendRequest (HttpEngine.java:246) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute (HttpURLConnectionImpl.java 5757) at com.android.okhttp.inentra.in.a.era.extine.htpEngine.sendRequest (HttpEngine.java:246) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute (HttpURLConnectionImpl.java penet57) at com.android.ok.tahp.intha, o.htpEnineExineEngine.sendRequest. (HttpURLConnectionImpl.java:405) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream (HttpURLConnectionImpl.java:243) at com.android.okhttp.internal.huc.DelegatingHttURURe of Refrands of Ethics, Ethics, Ethics, Sociology and Ecology Sciences (http://www.hava:405) at com.android.okhttp.internal.huc. com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream (HttpsURLConnectionImpl.java) at ssamvel.h ttpexes.MainActivity.hello (MainActivity: 38: 38) at java.lang.reflect.Method.invoke (Native Method) at android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick (AppCompatViewInflater.java 3.84)))))))). view.View.performClick (View.java:5610) at android.view.View $ PerformClick.run (View.java:22265) at android.os.Handler.handleCallback (Handler.java:751) at android.os.Handler .dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:154) at android.app.ActivityThread.main (ActivityThread.java:6077) at java.lang.reflect.Method.invoke ( Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:756)