【问题标题】:How to download data from url?如何从 url 下载数据?
【发布时间】:2016-10-18 22:15:38
【问题描述】:

我可以通过 HttpUrlConnection 和 InputStream 下载数据,但我需要下载原始数据。所以,我想通过原始数据创建一个下载管理器,然后使用原始数据将此数据转换为二进制或图像格式。根据我的研究,我看到“从 url 下载文件”但我无法在 mac 中下载文件?总是,我得到 FileNotFoundException。请帮我。如何从 url 下载数据?

public class DownloadData extends AsyncTask<Void,Void,Void> {
@Override
protected Void doInBackground(Void... params) {

    try {
        downloadData("https://blablalabla/get");
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}

public void downloadData(String myurl) throws IOException {
    URL u = new URL(myurl);
    InputStream is = u.openStream();

    DataInputStream dis = new DataInputStream(is);

    byte[] buffer = new byte[1024];
    int length;

    OutputStream fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory() + "/Users/ilknurpc/Desktop/text.docx"));
    while ((length = dis.read(buffer))>0) {
        fos.write(buffer, 0, length);
    }


}
}

【问题讨论】:

  • 请至少显示您的代码的相关摘录。

标签: download inputstream filenotfoundexception outputstream raw-data


【解决方案1】:

如果你想构建一个可行的下载管理器,我建议你看看 Tomcat Default Servlet Implementation .

您需要了解一些 HTTP 标头,例如 E-Tags 和 Http Range 标头才能正确实施。

感谢 Tomcat 默认 Servlet 为您处理了先决条件。

您可以在您的代码中调整此 servlet,只需稍作更改(包声明等)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多