Как получить доступ к нескольким URL-адресам в одной AsyncTask - PullRequest
0 голосов
/ 30 августа 2018

Я новичок в программировании на Android, и мне было интересно, можно ли подключиться к нескольким URL-адресам, используя один AsyncTask (70 различных URL-адресов). На данный момент я могу подключиться только к одному URL-адресу с помощью HttpURLConnection.

class MyAsyncTaskClass extends AsyncTask<String, String, String>
{

    private String rez;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

    }



    @Override
    protected String doInBackground(String... f_url) {

        try {
            ////////....


            URL url = new URL(("url")); 
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setRequestMethod("GET");
            urlConnection.setDoOutput(true);
            urlConnection.connect();


            /////////////////

        } catch (Exception e) {
            rez = "false";
        }


        return rez;
    }





    @Override
    protected void onPostExecute(String rez) 
    {



    }





}

1 Ответ

0 голосов
/ 30 августа 2018

Я не думаю, что вы хотели бы получить доступ ко всем 70 ссылкам одновременно (слишком большое количество соединений в одно и то же время приводит к тому, что ваше соединение не отвечает должным образом), но я думаю, что вы предпочитаете выполнять его по одной.

Почему бы не создать такую ​​функцию, как:

public String connection(String url) {
        URL cURL = new URL(url); 
        HttpURLConnection urlConnection = (HttpURLConnection) cURL.openConnection();
        urlConnection.setRequestMethod("GET");
        urlConnection.setDoOutput(true);
        urlConnection.connect();
        rez = ..........
        return rez;
}

и затем используйте:

public List<String> doInBackground() {
        final ArrayList<String> cResult = new ArrayList<>();
        cResult.add(connection(url1));
        cResult.add(connection(url2));
        cResult.add(connection(url3));
        ...
        return cResult;
}

Таким образом, вы получаете доступ ко всем ссылкам one_by_one.

Однако, похоже, вы упускаете часть, которая ПОЛУЧАЕТ результаты ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...