java - 如何使用java程序自动下载文件

标签 java web-services authentication user-interface

我需要从一个页面自动下载带有多个链接的文件(可能超过 100 个带有单独链接的文件)。我知道登录的 URL 并且我有凭据。

我愿意在 Java 程序中自动执行此操作。进入下载位置页面的唯一方法是登录网站。

cURL 命令对此有帮助吗?

请建议我这样做。

最佳答案

您可以使用 wget 来下载日志文件:

wget -r --no-parent --user=user --password=password --no-check-certificate <URL>
  • 您可以在 --header 中传递 header ,例如--header "Cookie: JSONSESSIONID=3433434343434"
  • 您可以使用 --post-data 'email=$EMAIL&password=$PASSWRD' 传递发布数据

或者您可以在 java 中使用以下 HttpClient:

  • 这里是 HTTPClient 的例子用于登录和传递 POST/GET/Headers 信息
  • 首先将整个 HTML 页面获取为字符串
  • 要么解析该字符串以获取文件链接,要么使用 XML 到对象映射器(如 https://github.com/FasterXML/jackson-dataformat-xml)转换为 java 对象
  • 获取文件链接后,使用 HttpClient 下载文件
public void saveFile(String url, String FileName) throws ClientProtocolException, IOException{
            HttpGet httpget = new HttpGet(url);
            HttpResponse response = httpClient.execute(httpget);
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                long len = entity.getContentLength();
                InputStream is = entity.getContent();
                FileOutputStream fos = new FileOutputStream(new File(filePath)));
                IOUtils.copy(is, fos);
            }
            return;
        }

关于java - 如何使用java程序自动下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22627632/

相关文章:

javascript - 如何解析 JSON 数组以获取单个数组元素

web-services - Json (Abap) 中的重音或特殊字符问题

http - 你如何在 Golang 中使用摘要身份验证进行 HTTP POST?

java - 无需身份验证的 GAE + GWT Servlet

security - Java认证、授权服务(JAAS)

java - Maven 错误 : "You don' t have a SNAPSHOT project in the reactor projects list.“

java - SwingWorker 不更新 JTable

java - 在 Java 中如何访问不同类的变量?

java - 点击按钮导致应用程序崩溃

java - 开发 Web 服务的 Java 技术最佳实践?