如何在java中发送curl请求

时间:2015-01-15 10:37:41

标签: java curl

我使用java WebService发送curl请求,这是我的要求:

curl -d "input = a b c d" 'localhost:8090/jobs?appName=Test40&classPath=fr.aid.cim.spark.JavaWord&sync=true&timeout=1000000000'

我不知道我应该使用的图书馆以及我如何用java编写它。你能告诉我怎么做吗?

谢谢。

2 个答案:

答案 0 :(得分:4)

如果您需要执行控制台命令(在这种情况下为curl):

Runtime runtime = Runtime.getRuntime();

try {
    Process process = runtime.exec("curl -d \"input = a b c d\" 'localhost:8090/jobs?appName=Test40&classPath=fr.aid.cim.spark.JavaWord&sync=true&timeout=1000000000'");
    int resultCode = process.waitFor();

    if (resultCode == 0) {
        // all is good
    } 
} catch (Throwable cause) {
    // process cause
}

更新(根据您的评论): 添加以下行:

System.out.println("is: " + IOUtils.toString(process.getInputStream()));
System.out.println("es: " + IOUtils.toString(process.getErrorStream()));

输出是什么? 可以找到IOUtils here

答案 1 :(得分:3)

你应该看看Apache HttpClient库。使用HC Fluent组件,您可以编写如下内容:

Request.Post("http://localhost:8090/jobs?appName=Test40&classPath=fr.aid.cim.spark.JavaWord&sync=true&timeout=1000000000")
.execute().returnContent();

HC Fluent Javadocs