Java 如何使用SonarQube web API?

Java 如何使用SonarQube web API?,java,sonarqube,apache-httpclient-4.x,Java,Sonarqube,Apache Httpclient 4.x,之前,我问过,声纳团队建议我应该使用WebAPI 经过一些研究,我仍然在努力学习如何使用WebAPI。( 我非常不熟悉Web API的工作原理) 读完这篇文章后,我意识到我可以使用Java代码来实现这一点。(我刚刚介绍了如何使用ApacheHTTP客户端)但是,在运行之后 HttpGet-HttpGet=new-HttpGet(“http://localhost:9000/api/issues?metrics=lines");(从那篇文章中复制) 我得到: HTTP/1.1404 {“error

之前,我问过,声纳团队建议我应该使用WebAPI

经过一些研究,我仍然在努力学习如何使用WebAPI。( 我非常不熟悉Web API的工作原理)

读完这篇文章后,我意识到我可以使用Java代码来实现这一点。(我刚刚介绍了如何使用ApacheHTTP客户端)但是,在运行之后

HttpGet-HttpGet=new-HttpGet(“http://localhost:9000/api/issues?metrics=lines");(从那篇文章中复制)

我得到:

HTTP/1.1404
{“errors”:[{“msg”:“未知url:/api/issues”}]}

我将此行更改为:

HttpGet-HttpGet=new-HttpGet(“http://localhost:9000/project/issues?facetMode=effort&id=project%3Atesting&resolved=false&types=CODE_SMELL");

我得到:

HTTP/1.1200
SonarQube正在加载…window.baseUrl=“”

这也不是我所期望的

我想知道什么是正确的使用方法?例如,如果我想得到一个项目的代码气味。Java中的代码应该是怎样的

下面是我目前使用的代码:

import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class Test {
    public static void main(String[] args) throws ClientProtocolException, IOException {

        //HttpGet httpGet = new HttpGet("http://localhost:9000/api/issues?metrics=lines");
        HttpGet httpGet = new HttpGet("http://localhost:9000/project/issues?facetMode=effort&id=project%3Atesting&resolved=false&types=CODE_SMELL");

        try(CloseableHttpClient httpClient = HttpClients.createDefault();
            CloseableHttpResponse response = httpClient.execute(httpGet);) {
            System.out.println(response.getStatusLine());
            HttpEntity entity = response.getEntity();
            System.out.println(EntityUtils.toString(entity));
        }
    }
}

感谢您的帮助和指导

根据SonarQube文档,SonarQube web API位于
/API
上下文路径下,以及部分和操作(您似乎缺少)

例如,要在端口9000上运行的本地主机上搜索问题,请将
GET
发送到
http://localhost:9000/api/issues/search?pageSize=500&componentKeys=YOUR_COMPONENT
并解析JSON响应


您可能还需要提供授权,该授权以基本用户名密码组合或访问令牌的形式发送,您可以通过web客户端检索该令牌。

http://localhost:9000/web_api/
可能会有所帮助,请解释参数,有Sonarqube版本的响应和跟踪更改示例。

非常感谢,这就是我需要的!你能解释一下我应该在“?”号后面加什么吗?在本例中,您将pageSize=500和componentKeys=u组件。我发现componentKeys是“问题/搜索”下的参数之一。页面大小如何?在哪里可以找到此类参数?
pageSize
仅控制返回的结果数,最大值为500。不推荐使用的文档列出了它们,尽管如果它们被删除,我会感到惊讶:这绝对有用!嗨,埃文,你能帮我吗?非常感谢。这并不能回答问题。