Using curl command in java

前端 未结 1 1618
栀梦
栀梦 2020-11-29 08:19

I have a curl command to use

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


        
相关标签:
1条回答
  • 2020-11-29 09:22

    Here a example show Processbuilder that executes curl. These section of code work fine in my environment. Actually, you will executes it with no problems. The program obtains the image from web, and save as a jpg file. The jpg file is saved at the path "/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://static.tumblr.com/cszmzik/RUTlyrplz/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();
    
    }
     }
    

    For your questions. It is the most directly and intuitively to map curl to Java code, when using Processbuilder. Just write as that:

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

    become

    ProcessBuilder pb = new ProcessBuilder("curl", "-s","-d user.name=xxxx ","-d `file=yyyy","-d   rg=-v" ,"htttp://localhost:zzzz/templeton/v1/pig");`
    
    0 讨论(0)
提交回复
热议问题