Как скачать файл с mediafire и сохранить его в папке App? - PullRequest
0 голосов
/ 08 марта 2019

Можем ли мы скачать файл MediaFire? Я пытаюсь загрузить файл из MediaFire, используя приведенный ниже код, но, похоже, он не работает.

Когда я передаю прямую ссылку в коде, мой код работает, но для MediaFire он не работает. Потому что для Mediafire нет прямой ссылки на скачивание, а в кнопке загрузки есть ссылка, но эта ссылка генерируется при каждой перезагрузке веб-страницы. Я могу получить эту ссылку при разборе?

Может кто-нибудь помочь мне скачать файл с MediaFire?

Вот мой код -

public class MainActivity extends AppCompatActivity {

public Button download;
public HttpURLConnection connection;
public URL url;

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

    download = findViewById(R.id.download);

    download.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(), "Downloading..........\n", Toast.LENGTH_LONG).show();
            new task().execute();
            Toast.makeText(getApplicationContext(), "Download completed..........\n", Toast.LENGTH_LONG).show();
        }
    });


}

class task extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... voids) {
        try {
            url = new URL("http://www.mediafire.com/file/9074ul9m7cpcq0j/Sample+-+Menage+Quad+-+Oh+Dear.mp3");
            connection = (HttpURLConnection) url.openConnection();
            connection.setDoOutput(true);
            connection.connect();
            connection.setRequestMethod("GET");

            try {
                File mydir = getApplicationContext().getDir("Songs", Context.MODE_PRIVATE);
                if (!mydir.exists()) {
                    mydir.mkdir();
                }
                final File file = new File(mydir, "test.mp3");
                FileOutputStream fileOutputStream = new FileOutputStream(file);
                InputStream inputStream = connection.getInputStream();
                byte[] buffer = new byte[1024];
                int bufferLength = 0;

                while ((bufferLength = inputStream.read(buffer)) > 0) {
                    fileOutputStream.write(buffer, 0, bufferLength);
                }
                fileOutputStream.close();
                connection.disconnect();

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

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void aVoid) {
        super.onPostExecute(aVoid);
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...