Синхронный вызов API через Android/Java

Кто-нибудь знает, как можно сделать синхронный звонок через андроид? Я в основном не хочу продолжать дальше, пока не получу ответ обратно с сервера.

Это самая простая версия кода, который у меня есть

URL url = new URL("http://google.com");
HttpURLConnection connection = (HttpURLConnection) 
url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
int code = connection.getResponseCode();

Но это дает мне эту ошибку, потому что он создается в главном потоке.

NetworkOnMainThreadException

Любая помощь с благодарностью, спасибо

1 ответ

Решение

В основном вы не можете делать HTTP-вызовы на MainThread.

Есть много способов, как создать поток Runnable, AsyncTask и т. Д. Попробуйте следующий фрагмент кода:

new Thread(new Runnable()
    {
        public void run()
        {
            try
            {
              //your HTTP request code..      
            }
            catch (IOException e)
            {
                //Handle exceptions
                e.printStackTrace();
            }
        }
    }).start();

Для дальнейшего чтения многопоточности см. Документацию Android Developer.

Другие вопросы по тегам