Android Studio, не работает get запрос

181
03 ноября 2018, 09:20

Делаю практическое задание для универа на Android Studio, мне нужно делать get запросы к странице, чтобы получать данные с БД, но ни один из найденных вариантов не работает, они либо устаревшие, либо просто не работают. Пытался через HttpURLConnection, DefaultHttpClient, Volley.

В первых двух случаях выкидывает исключение и вылетает приложение, ниже код последней ошибки, которую я очередной раз получил:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.mycompany.jesus.messenger2, PID: 10929
              java.lang.IllegalStateException: Could not execute method for android:onClick
                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
                  at android.view.View.performClick(View.java:4463)
                  at android.view.View$PerformClick.run(View.java:18789)
                  at android.os.Handler.handleCallback(Handler.java:808)
                  at android.os.Handler.dispatchMessage(Handler.java:103)
                  at android.os.Looper.loop(Looper.java:193)
                  at android.app.ActivityThread.main(ActivityThread.java:5299)
                  at java.lang.reflect.Method.invokeNative(Native Method)
                  at java.lang.reflect.Method.invoke(Method.java:515)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
                  at dalvik.system.NativeStart.main(Native Method)
               Caused by: java.lang.reflect.InvocationTargetException
                  at java.lang.reflect.Method.invokeNative(Native Method)
                  at java.lang.reflect.Method.invoke(Method.java:515)
                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
                  at android.view.View.performClick(View.java:4463) 
                  at android.view.View$PerformClick.run(View.java:18789) 
                  at android.os.Handler.handleCallback(Handler.java:808) 
                  at android.os.Handler.dispatchMessage(Handler.java:103) 
                  at android.os.Looper.loop(Looper.java:193) 
                  at android.app.ActivityThread.main(ActivityThread.java:5299) 
                  at java.lang.reflect.Method.invokeNative(Native Method) 
                  at java.lang.reflect.Method.invoke(Method.java:515) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641) 
                  at dalvik.system.NativeStart.main(Native Method) 
               Caused by: android.os.NetworkOnMainThreadException
                  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1156)
                  at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
                  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
                  at java.net.InetAddress.getAllByName(InetAddress.java:214)
                  at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28)
                  at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216)
                  at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122)
                  at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292)
                  at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
                  at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
                  at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
                  at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
                  at com.mycompany.jesus.PrivateMessanger.MainActivity.downloadUrl(MainActivity.java:61)
                  at com.mycompany.jesus.PrivateMessanger.MainActivity.getContent(MainActivity.java:51)
                  at java.lang.reflect.Method.invokeNative(Native Method) 
                  at java.lang.reflect.Method.invoke(Method.java:515) 
                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
                  at android.view.View.performClick(View.java:4463) 
                  at android.view.View$PerformClick.run(View.java:18789) 
                  at android.os.Handler.handleCallback(Handler.java:808) 
                  at android.os.Handler.dispatchMessage(Handler.java:103) 
                  at android.os.Looper.loop(Looper.java:193) 
                  at android.app.ActivityThread.main(ActivityThread.java:5299) 
                  at java.lang.reflect.Method.invokeNative(Native Method) 
                  at java.lang.reflect.Method.invoke(Method.java:515) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641) 
                  at dalvik.system.NativeStart.main(Native Method) 

А в Volley выбрасывает 302 код, т.е. типо у меня редирект на странице, но у меня нету там никаких перенаправлений. Проверял эту библиотеку с разными сайтами, работает только с https(к гуглу делал запрос), с http постоянно код 302. Всю прошлую ночь просидел с этой проблемой, без get запросов мне никак, а найти верное решение не могу. Помогите, пожалуйста

Answer 1

Подробнее прочитайте стактрейс вашей ошибки:

Caused by: android.os.NetworkOnMainThreadException

Не пытайтесь делать запросы в сеть из главного потока приложения. В этом главная ошибка и причина краша, — из-за редиректа приложение бы не упало.

Почитайте на эту тему, писать очередной туториал сюда нет смысла, но постарайтесь глянуть в эту сторону.

READ ALSO
Не могу найти правильный подход к изучению Java и разработки под Android

Не могу найти правильный подход к изучению Java и разработки под Android

я начинающий программист, изучаю Java и хочу изучать разработку под AndroidПроблема в том, что я не могу найти правильный подход к изучению, и меня...

169
Как обновить таблицу jsp java foreach ajax

Как обновить таблицу jsp java foreach ajax

подскажите пожалуйста Как обновить c: forEach с помощью Ajax

217
пустой Reqest в Java Servlet, проблемы с GSON

пустой Reqest в Java Servlet, проблемы с GSON

Парни привет! Есть вот такой код на тачке:

213
Что значит :: знак в java? [дубликат]

Что значит :: знак в java? [дубликат]

На данный вопрос уже ответили:

170