在java中使用curl命令

我有一个curl命令可以使用

curl -s -d user.name=xxxx \ -d file=yyyy \ -d arg=-v \ 'http://localhost:zzzz/templeton/v1/pig' 

任何人都可以为上面的curl命令告诉等效的java代码。

提前致谢

这里的示例显示了执行curl的Processbuilder。 这些代码段在我的环境中工作正常。 实际上,您将毫无问题地执行它。 程序从Web获取图像,并保存为jpg文件。 jpg文件保存在路径“/ home / your_user_name / Pictures”中。

 import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; public class ProcessBuilderTest { public static void main(String arg[]) throws IOException { ProcessBuilder pb = new ProcessBuilder( "curl", "-s", "http://sofzh.miximages.com/java/the-simpsons-season-22-episode-13-the-blue-and-the-gray.jpg "); pb.directory(new File("/home/your_user_name/Pictures")); pb.redirectErrorStream(true); Process p = pb.start(); InputStream is = p.getInputStream(); FileOutputStream outputStream = new FileOutputStream( "/home/your_user_name/Pictures/simpson_download.jpg"); BufferedInputStream bis = new BufferedInputStream(is); byte[] bytes = new byte[100]; int numberByteReaded; while ((numberByteReaded = bis.read(bytes, 0, 100)) != -1) { outputStream.write(bytes, 0, numberByteReaded); Arrays.fill(bytes, (byte) 0); } outputStream.flush(); outputStream.close(); } } 

对于你的问题。 在使用Processbuilder时,将curl映射到Java代码是最直接和直观的。 就这样写:

 curl -s -d user.name=xxxx \ -d file=yyyy \ -d arg=-v \ 'htttp://localhost:zzzz/templeton/v1/pig' 

成为

 ProcessBuilder pb = new ProcessBuilder("-s","-d user.name=xxxx ","-d `file=yyyy","-d rg=-v" ,"htttp://localhost:zzzz/templeton/v1/pig");`