Пытаясь получить ответ Json от API с помощью AsyncTask, я всегда получаю нулевой результат - PullRequest
0 голосов
/ 16 марта 2020

Я застрял с этим, поэтому любая помощь будет принята с благодарностью.

Я пытаюсь получить Json ответ от API, используя AsyncTask, но я всегда получаю нулевой результат.

publi c класс MainActivity расширяет AppCompatActivity {private String fetchURL = "http://api.themoviedb.org/3/movie/popular?api_key= ...";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


  new MyAsyncTask().execute(fetchURL);

}

public class MyAsyncTask extends AsyncTask<String,Void,String> {
    String inputLine;
    String result;

    protected String doInBackground(String... params) {
        String stringUrl = params[0];

        try {
            //Create a URL object holding our url
            URL myUrl = new URL(stringUrl);
            //Create a connection

            HttpURLConnection urlConnection =(HttpURLConnection)
                    myUrl.openConnection();

            urlConnection.setRequestMethod("GET");
            urlConnection.setReadTimeout(1000);
            urlConnection.setConnectTimeout(1500);
            urlConnection.connect();

            //Create a new InputStreamReader
            InputStreamReader streamReader = new
                    InputStreamReader(urlConnection.getInputStream());

            //Create a new buffered reader and String Builder
            BufferedReader reader = new BufferedReader(streamReader);
            StringBuilder stringBuilder = new StringBuilder();


            //Check if the line we are reading is not null
            while((inputLine = reader.readLine()) != null){

                stringBuilder.append(inputLine);
            }
            //Close our InputStream and Buffered reader

            reader.close();
            streamReader.close();
            //Set our result equal to our stringBuilder
            result = stringBuilder.toString();



        } catch (Exception e) {
            e.printStackTrace();
        }


        return result;
    }
}

}

...