Java执行curl命令

需要注意的是,命令需要以数组的形式传递参数,就是把正常的命令以空格切分成数组就行了。而且参数前后不能有空格,不然会报错。

具体的测试代码如下:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class TestCurl {


    public static void main(String[] args){
         String[] cmds={"curl","-u", "admin:admin",  "-XGET", "http://localhost:18631/rest/v1/system/info","-H"
        ,"X-Requested-By:sdc"};//必须分开写,不能有空格
        System.out.println(execCurl(cmds));
    }


    public static String execCurl(String[] cmds) {
        ProcessBuilder process = new ProcessBuilder(cmds);
        Process p;
        try {
            p = process.start();
            BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
            StringBuilder builder = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                builder.append(line);
                builder.append(System.getProperty("line.separator"));
            }
            return builder.toString();

        } catch (IOException e) {
            System.out.print("error");
            e.printStackTrace();
        }
        return null;

    }
}

 

你可能感兴趣的:(开发语言)