如何在java中使用curl下载zip文件
我正在尝试用java中的curl下载一个zip文件如何在java中使用curl下载zip文件,java,curl,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: applica
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文件被下载。这就像编写一个文件一样简单 使用ApacheCommonsIO。它有一个FileUtils库,可以在引擎盖下完成所有工作 基本上,在卷曲文件之后,需要将其保存到某个定义良好的路径上的磁盘(FileOutputStream) 参考(在可接受的解决方案中也有代码段):
Runtime.exec()
不执行shell,shell是唯一理解>
的东西。如果需要重定向,请使用ProcessBuilder的重定向功能,或调整命令以启动shell
注:
curl
。你不需要养一条狗自己叫exitValue()
没有多大意义,除非您打算对结果做些什么,或者注意到进程尚未退出尝试在
p.exitValue()之前添加
和check您可以获取流程错误流和std流,并将它们打印出来,您将知道流程执行过程中发生了什么,但是,您为什么要使用curl
?为什么不使用JavaAPI下载文件Url
和URLConnection
…重定向在Runtime.exec()
IIRC中不起作用。我建议改为使用该类。@Aaron Redirection在Runtime.exec()
或ProcessBuilder.start()
中根本不起作用。它比这简单得多,但OP表示出于某种原因他想使用curl
。
" >> "