我正在尝试使用以下代码
获取所有作业名称$req = $_SERVER['REQUEST_URI'];
if (preg_match("/TEXT-IM-LOOKING-FOR/", $req))
{
...HTML HERE...
}
上面的代码没有返回任何json响应(只是一个空数组[]),但是如果我在url(http://myjenkins/api/json?depth=1)中删除了树查询,那么我会得到所有作业的json响应。
为什么带过滤器的查询没有返回任何结果? HttpClient或jenkins api有问题。
有人可以帮我解决这个问题。
由于
答案 0 :(得分:1)
我建议您在浏览器中尝试使用该网址。我试着反对我的jenkins实例,它工作得很好。 此外,树查询中的第二个参数似乎是不必要的 - 即使这个url返回作业名称 - http://myjenkins/api/json?depth=1&tree=jobs[name]
答案 1 :(得分:0)
一些事情......
1)我尝试了我的浏览器,所有查询都运行良好,但不是通过java代码。原因是,在浏览器中已经登录(git oauth)并且所有查询都在java中工作,因为jenkins授权设置为不读取anonymus的作业(我以前没有检查过这个傻瓜)。
2)一旦设置了适当的权限,我仍然遇到URI编码问题,然后我使用了URI构建器
URI uri = new URIBuilder().setScheme("http").setHost(jenkinsHost)
.setPath("/api/json")
.setParameter("depth", "1").setParameter("tree", "jobs[name,jobs[name]]")
.build()
现在一切正常。