Можем ли мы скачать файл 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);
}
}
}