【发布时间】:2018-12-26 16:10:51
【问题描述】:
我正在尝试编写一个 java 程序,它将提供特定作业的构建状态,这个 Jenkins 作业每小时运行一次,我想获取最后一次构建的构建状态(成功或失败) 24小时。我可以从以下 url 格式获取构建信息: /job//api/json?tree=allBuilds[result,number,url,timestamp] 或 http://jenkins.myteam-aws.local:8080/job/HealthCheckerApp/api/json?tree=allBuilds[result,number,url,timestamp] 但问题是当我登录应用程序时,我可以检索信息,但是当我从 java 应用程序调用上述 url 时,我收到 500 错误,此错误的可能原因可能是登录凭据丢失。 那么我怎样才能从 URL 中读取这个 json 数据呢? 在这方面寻求您的帮助。
// below code will read the json data from the given url
public class JsonReader {
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {
InputStream is = new URL(url).openStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
is.close();
}
}
public static void main(String[] args) throws IOException, JSONException {
System.out.println("inside main-------->");
JSONObject json = readJsonFromUrl("http://jenkins.myteam-aws.local:8080/job/HealthCheckerApp/api/json?tree=allBuilds[result,number,url,timestamp]");
System.out.println("Json object created: " + json);
System.out.println(json.toString());
}
}
结果:成功
内置编号:4715
网址:http://jenkins.myteam-aws.local:8080/job/Thor-API-Prod-Health-Checker/4715/
时间戳:1545803471449
【问题讨论】:
-
您可以访问 Jenkins 日志吗?也许你可以弄清楚真正的 500 错误是因为登录还是什么......
-
我没有检查日志,当我执行程序然后在 Netbeans 中它向我显示 500 错误,当我通过 selenium 登录到 jenkins 并调用 url 然后我没有收到这样的错误。
-
driver.get("jenkins.myteam-aws.local:8080"); WebElement userTextField = driver.findElement(By.id("j_username")); userTextField.sendKeys(user); WebElement PassTextField = driver.findElement(By .name("j_password")); PassTextField.sendKeys(pass); driver.findElement(By.id("yui-gen1-button")).click(); driver.get("jenkins.myteam-aws.local:8080/job/HealthCheckerApp/api/…);跨度>
-
java客户端安全吗?我的意思是它是受信任的应用程序吗?
-
@JRichardsz 对不起,我没有理解这里trusted的意思,请你解释一下。
标签: java jenkins jenkins-cli