Reputation: 22066
i have develop applicatin in which i need to download file from url and i have tried following code but i got 0 byte when i shown detail.
Code::
package com.playmusic;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
public class playmusic extends Activity {
private static String fileName = "shanesh.mp3";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
URL url = new URL("URl");
HttpURLConnection c = (HttpURLConnection) url.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
String PATH = Environment.getExternalStorageDirectory()
+ "/download/";
Log.v("log_tag", "PATH: " + PATH);
File file = new File(PATH);
file.mkdirs();
File outputFile = new File(file, fileName);
FileOutputStream fos = new FileOutputStream(outputFile);
InputStream is = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = is.read(buffer)) != -1) {
fos.write(buffer, 0, len1);
}
fos.close();
is.close();
} catch (IOException e) {
Log.d("log_tag", "Error: " + e);
}
Log.v("log_tag", "Check: ");
} }
Manifest :
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
Upvotes: 2
Views: 331
Reputation:
this is simple code to download any file like image,audio,video etc
Button start;
//String HttpMyUrl="http://am.cdnmob.org/_/img/loader-small.gif";
String HttpMyUrl="http://ringtones.mob.org/ringtone/RIusrm-7xATkRQlLw1o89w/1424909358/fa1b23bb5e35c8aed96b1a5aba43df3d/stefano_gambarelli_feat_pochill-land_on_mars_v2.mp3";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
start= (Button) findViewById(R.id.startBtn);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(HttpMyUrl));
request.setTitle("File Download");
request.setDescription("File is being Downloaded...");
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
String fileName = URLUtil.guessFileName(HttpMyUrl,null, MimeTypeMap.getFileExtensionFromUrl(HttpMyUrl));
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,fileName);
DownloadManager manager =(DownloadManager) getApplication().getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
}
});
Give the permission
Upvotes: 1
Reputation: 55
Try this :
int count;
try {
URL url = new URL("URl");
HttpURLConnection c = (HttpURLConnection) url.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
String PATH = Environment.getExternalStorageDirectory()
+ "/altered/";
Log.v("log_tag", "PATH: " + PATH);
File file = new File(PATH);
if (!file.exists()) {
file.mkdirs();
}
File outputFile = new File(file,name);
FileOutputStream fos = new FileOutputStream(outputFile);
// getting file length
int lenghtOfFile = c.getContentLength();
InputStream is = c.getInputStream();
byte buffer[] = new byte[1024];
long total = 0;
while ((count = is.read(buffer)) != -1) {
total += count;
// publishing the progress....
// After this onProgressUpdate will be called
publishProgress("" + (int) ((total * 100) / lenghtOfFile));
fos.write(buffer);
}
fos.close();
is.close();
} catch (IOException e) {
Log.e("log_tag", "Error: " + e);
}
Upvotes: 0
Reputation: 3619
do as follows.
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://www.mysite.com/file.txt");
try {
// Execute HTTP Get Request
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
printAsString(entity.getContent()));
} catch (IOException e) {
Log.e(TAG, "There was an IO Stream related error", e);
}
private void printAsString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder builder = new StringBuilder();
String line;
try {
while ((line = reader.readLine()) != null) {
Syso(line);
}
} catch (IOException e) {
Log.d(TAG, "Error while converting input stream to string");
}
is.close();
}
Upvotes: 0
Reputation: 31779
This is the code I use to download a file. Try this
DefaultHttpClient http = new DefaultHttpClient();
HttpGet method = new HttpGet(YOUR URL);
HttpResponse res = http.execute(method);
InputStream responseStream = res.getEntity().getContent();
Here I use the GET method and append the parameters to the URL.
Upvotes: 0