我正在尝试使用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文件正在下载。
答案 0 :(得分:1)
" >> "
Runtime.exec()
不执行shell,而shell是唯一理解>>
的东西。如果要重定向,请使用ProcessBuilder
的重定向功能,或调整命令以启动shell。
注意:
很难理解你在这里使用Java的原因,而不是shell脚本,或者相反,如果必须使用Java,为什么要使用curl
。你不需要养狗和自己吠叫。
在调用exitValue()
时没有多大意义,除非你要对结果做些什么,或者注意一下这个过程还没有退出的事实。
答案 1 :(得分:0)
这就像编写文件一样简单 使用apache commons-io。它有一个FileUtils库,可以完成所有工作。
基本上,在卷曲文件之后,您需要将它保存到某个定义良好的路径上的磁盘(FileOutputStream)。
引用(在已接受的解决方案中也有代码片段): How to download and save a file from Internet using Java?