在我的应用程序中,用户需要从URL下载PDF文件并将其存储在SD卡上。 但是这里的问题是我只能使用DefaultHttpClient来访问url。 我找到了几个解决方案但没有使用DefaultHttpClient。 下载PDF后,我还可以在我的应用程序中查看PDF。
答案 0 :(得分:4)
//使用此方法下载pdf文件
public void downloadPdfContent(String urlToDownload){
try {
String fileName="xyz";
String fileExtension=".pdf";
// download pdf file.
URL url = new URL(urlToDownload);
HttpURLConnection c = (HttpURLConnection) url.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
String PATH = Environment.getExternalStorageDirectory() + "/mydownload/";
File file = new File(PATH);
file.mkdirs();
File outputFile = new File(file, fileName+fileExtension);
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();
System.out.println("--pdf downloaded--ok--"+urlToDownload);
} catch (Exception e) {
e.printStackTrace();
}
}
//查看pdf使用此方法
private void onPdfClick()
{
// String pdfFile = Environment.getExternalStorageDirectory()+ File.separator + AstroManager.file.getName();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File("/sdcard/mydownload/xyz.pdf"), "application/*");
startActivity(intent);
}
答案 1 :(得分:1)
如果您必须打开pdf文件,必须在您的设备中安装pdf阅读器。否则它将显示空白屏幕。 另外here是从服务器下载pdf 和查看其内容的好例子。
答案 2 :(得分:0)
请参阅http://developer.android.com/reference/org/apache/http/client/methods/HttpGet.html,以便使用DefaultHttpClient
从网址中检索数据