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



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

我愿意用自动化的Java程序来完成。进入下载位置页面的唯一方法是登录网站。

cURL命令对此有帮助吗?

请建议我这样做。

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

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

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

    以下是HTTPClient登录和传递POST/GET/Headers信息的示例
  • 首先获得整个HTML页面作为字符串
  • 解析该字符串以获取文件链接或使用XML到对象映射器转换为java对象,如https://github.com/FasterXML/jackson-dataformat-xml
  • 一旦你得到文件的链接,使用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.nio.file

Files.copy(new URL("http://host/site/filename").openStream(), Paths.get(localfile)

相关内容

  • 没有找到相关文章

最新更新