【问题标题】:Java: Download file from URL when URL requests authenticationJava:当 URL 请求身份验证时从 URL 下载文件
【发布时间】:2013-06-27 20:02:18
【问题描述】:

我正在尝试从 URL 下载文件。服务器运行 apache httpd 并首先需要用户名密码登录/身份验证。然后,当我将此 URL 放入浏览器时,我会收到下载提示以下载此 zip 文件。

如何在 Java 中做到这一点?我正在学习 Java,我来自 Python 背景。任何帮助是极大的赞赏。

编辑:服务器在 HTTPS 身份验证上运行。

【问题讨论】:

  • 是 HTTP(基本)身份验证还是基于 cookie 的自定义系统(表单)?
  • 它使用 HTTPS 而不是 HTTP basic。
  • HTTPS 与我提出的问题是正交的。这两个选项都可以通过 HTTP 或 HTTPS 使用。 (尽管它们不应该与 HTTP 一起使用)

标签: java url authentication login download


【解决方案1】:

或者,如果你想安全一点:

HttpResponse res;
DefaultHttpClient httpclient = new DefaultHttpClient();
String authorizationString = "Basic " + Base64.encodeToString(("admin" + ":" + "").getBytes(), Base64.NO_WRAP); //this line is diffe
authorizationString.replace("\n", "");
try {
    HttpGet request = new HttpGet(URI.create(url));
    request.addHeader("Authentication",authorizationString);
    res = httpclient.execute(request);
    return new MjpegInputStream(res.getEntity().getContent());              
} catch (ClientProtocolException e) {e.printStackTrace();}
} catch (IOException e) {e.printStackTrace();}

【讨论】:

    【解决方案2】:

    如果服务器使用 BASIC 认证,你应该可以通过在 URL 中指定用户名/密码来获取资源:http://user:password@hostname/path/filename.ext

    浏览器也支持此功能,因此您可以在浏览器中快速尝试。

    【讨论】:

      猜你喜欢
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 2018-11-21
      相关资源
      最近更新 更多