【问题标题】:How to run a curl command from java? [duplicate]如何从java运行curl命令? [复制]
【发布时间】:2018-12-19 15:30:03
【问题描述】:

我正在尝试使用 curl 从 Java 发出 POST 请求。它也有一些有效载荷。我收到状态码 400。我错过了什么?

以下是我在终端中使用的 curl ..

curl --cookie "token=xyzxyzxyzxyz" --header "Content-Type:application/json" --data 
{"branchName":"name","branchId":"bid","sourceBranch":"sb","alias":"pppp","mainPackageFullPath":"main.full.path"}'
-k http://app.aws.application/api/random/create

【问题讨论】:

  • 您应该添加您尝试过的内容。另外,我不确定您的用例是什么,但您最好直接通过 java 发出 post 请求,而不是运行 curl 命令。

标签: java spring curl


【解决方案1】:

你可以这样做

    String branchName="name";
    String branchId="bid";
    String sourceBranch="sb"
    String alias="ppp"

   String[] command = {"curl" "-k" "-i" "-X" POST "-H" "Content-Type: multipart/form-data" --cookie "rsession=your rsession" "Content-Type:application/json" --data{branchName+":"+branchId":"+sourceBranch":",+alias}};
    ProcessBuilder process = new ProcessBuilder(command); 
    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"));
            }
            String result = builder.toString();
            System.out.print(result);

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

【讨论】:

  • 您必须指定“curl”命令的完整路径 - 用“which curl”检查它!除非您收到错误“无法运行程序 curl,createProcess error = 2”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
  • 2011-02-12
  • 2021-10-26
  • 1970-01-01
相关资源
最近更新 更多