java - 如何使用 Java for Jenkins 使用 REST API 进行 POST

标签 java rest post jenkins

我是java领域的新学习者。我需要使用 REST API 创建 Jenkins 作业。我能够连接到 Jenkins 并列出其中的所有作业(GET 方法)。我想知道如何发帖。

我的计划是创建一个包含输入数据的 json 文件来创建作业,java 程序将读取它(json 文件)并将其发布到 Jenkins 并创建作业。我搜索了一些关于帖子的信息。我可以获得一些发布一些字符串数据的示例。如何将 json 文件数据发布到 Jenkins 并在 Jenkins 中创建一个作业?

我可以获得一个小代码片段以便我可以引用它或示例 Java 程序吗?

谢谢

最佳答案

您可以看到Jenkins API页。您可以使用 Jenkins 本身提供的文档来填补空白;例如,http://JENKINS_HOST/api将为您提供创建作业的 URL 和 http://JENKINS_HOST/job/JOBNAME/api将为您提供触发构建的 URL。

此后,您可以使用 Java 和 Jersey 来创建休息客户端。

在您的 Maven pom 中声明 jersey-client

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.8</version>
</dependency>

然后使用上面示例的代码创建客户端:

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class JerseyClientPost {

public static void main(String[] args) {

  try {

    Client client = Client.create();

    WebResource webResource = client
       .resource("http://JENKINS_HOST/job/JOBNAME/api");

    String input = "{\"key1\":\"value1\",\"key2\":\"value2\"}";

    ClientResponse response = webResource.type("application/json")
       .post(ClientResponse.class, input);

    if (response.getStatus() != 201) {
        throw new RuntimeException("Failed : HTTP error code : "
             + response.getStatus());
    }

    System.out.println("Output from Server .... \n");
    String output = response.getEntity(String.class);
    System.out.println(output);

  } catch (Exception e) {

    e.printStackTrace();

  }

 }
}

关于java - 如何使用 Java for Jenkins 使用 REST API 进行 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42956404/

相关文章:

java - ListView复选框位于文本之上,如何填充文本并强制复选框标准颜色?

java - 并行写入Hadoop文件系统

用于过滤嵌套集合的 RESTful URI

rest - HTTP API 中的搜索动词

java - Play 框架 webservice - 传递 base64 时激活器启动问题

mysql - WordPress 自定义分类查询

java - 在 Spring MVC 应用程序中使用 facebook 登录?

java - 当字段名称以点开头时将 Json 转换为对象

api - 将 140k 对象导入 Parse.com

python - Jupyter 内核网关上的 POST 请求验证