如何在java中使用curl下载zip文件

时间:2017-07-24 09:45:42

标签: java curl

我正在尝试使用java中的curl下载zip文件

public static void main(String[] args) throws Exception {

     String url = "https://abcd.com ";
     String[] command = {
              "curl", 
              " -X ", "POST ", 
              "-H ", "\"Content-Type: application/json\" ", 
              "-H ","Accept:application/json ",
              "-H ", "Accept-Encoding:gzip ", 
              "-d' ", url,
              " >> "," /Users/myUser/Documents/Test1.gzip"};

     Process p = Runtime.getRuntime().exec(command);
     p.exitValue();

}

然而没有任何东西被触发。 如果我错过了什么,请告诉我。

当我从终端运行相同的命令时,zip文件正在下载。

2 个答案:

答案 0 :(得分:1)

" >> "

Runtime.exec()不执行shell,而shell是唯一理解>>的东西。如果要重定向,请使用ProcessBuilder的重定向功能,或调整命令以启动shell。

注意:

  1. 很难理解你在这里使用Java的原因,而不是shell脚本,或者相反,如果必须使用Java,为什么要使用curl。你不需要养狗和自己吠叫。

  2. 在调用exitValue()时没有多大意义,除非你要对结果做些什么,或者注意一下这个过程还没有退出的事实。

答案 1 :(得分:0)

这就像编写文件一样简单 使用apache commons-io。它有一个FileUtils库,可以完成所有工作。

基本上,在卷曲文件之后,您需要将它保存到某个定义良好的路径上的磁盘(FileOutputStream)。

引用(在已接受的解决方案中也有代码片段): How to download and save a file from Internet using Java?