【发布时间】:2010-04-14 09:03:56
【问题描述】:
我需要从网站下载图片,我有登录名和密码,但是如果我只是使用 URL 下载图片,会抛出异常:会话中没有值。
我想我需要先登录网站才能以编程方式下载图像。
你有什么解决办法吗?提前致谢!
【问题讨论】:
标签: java http image authentication download
我需要从网站下载图片,我有登录名和密码,但是如果我只是使用 URL 下载图片,会抛出异常:会话中没有值。
我想我需要先登录网站才能以编程方式下载图像。
你有什么解决办法吗?提前致谢!
【问题讨论】:
标签: java http image authentication download
在简单的情况下,您可以使用带有 URL 的 URLConnection 并将内容向下传输。更一般地说,我强烈建议您使用Apache HttpClient,因为您需要进行身份验证并可能接收cookie并将其发送到服务器。阅读有关Authentication 和Methods 的用户指南,尤其是Get。
【讨论】:
使用HTTP Client 库来编写用于内容访问的蜘蛛。
如果您想坚持使用 Java,我建议记录用于登录和内容访问的 HTTP 流量,然后使用库重建通信。
还有其他库也适用于其他语言,例如 Perl:LWP。
【讨论】:
尽管 java.net 包提供了通过 HTTP 访问资源的基本功能,但它并没有提供许多应用程序所需的全部灵活性或功能。 HttpClient 旨在通过提供一个高效、最新且功能丰富的包来实现最新 HTTP 标准和建议的客户端来填补这一空白。 HttpClient 专为扩展而设计,同时为基本 HTTP 协议提供强大的支持,任何构建 HTTP 感知客户端应用程序(例如 Web 浏览器、Web 服务客户端或利用或扩展 HTTP 协议进行分布式通信的系统)的人都可能会感兴趣。
【讨论】:
我想提一下HtmlUnit。它是一个带有 Javascript for Java 的无头浏览器。
【讨论】: