Java SonarQube搜索API赢得';不认证

Java SonarQube搜索API赢得';不认证,java,sonarqube,httpclient,Java,Sonarqube,Httpclient,我正在写一个简短的程序来收集SonarQube上项目的指标 我正在使用SonarQube的两个api:api/组件/搜索和api/度量/组件 我正在使用一个令牌进行身份验证,使用常规的curl命令对这两个令牌进行身份验证都没有问题 在我的Java程序中,组件api正在进行良好的身份验证并返回结果。但是,搜索api(使用完全相同的方法进行身份验证时)仅返回: {"errors":[{"msg":"Authentication is required"}]} 你知道为什么在Java程序中调用这两个

我正在写一个简短的程序来收集SonarQube上项目的指标

我正在使用SonarQube的两个api:api/组件/搜索和api/度量/组件

我正在使用一个令牌进行身份验证,使用常规的curl命令对这两个令牌进行身份验证都没有问题

在我的Java程序中,组件api正在进行良好的身份验证并返回结果。但是,搜索api(使用完全相同的方法进行身份验证时)仅返回:

{"errors":[{"msg":"Authentication is required"}]}
你知道为什么在Java程序中调用这两个API时表现出不同的行为吗

执行的curl命令(两者都适用):

使用搜索api进行身份验证和HTTP请求的Java代码(适用于组件api):


向我们显示您正在执行的命令。另请参见“用户令牌”一段。@JeroenHeier补充说您应该看一看(BenW答案)并@JeroenHeier谢谢。我让它在components API中运行良好,但search API仍然显示了在其他线程(适用于components API)中使用的各种方法所需的“authentication required”(身份验证),并向我们显示了您正在执行的命令。另请参见“用户令牌”一段。@JeroenHeier补充说您应该看一看(BenW答案)并@JeroenHeier谢谢。我已经让它在components API中运行良好,但是搜索API仍然显示了在其他线程中使用的各种方法(适用于components API)所需的“身份验证”
curl -u TOKEN: https://sonarqube-XXX.co.uk/api/components/search?qualifiers=DIR&q=master

curl -u TOKEN: https://sonarqube-XXX.co.uk/api/measures/component?componentId=XXX&metricKeys=coverage
CredentialsProvider provider = new BasicCredentialsProvider();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(TOKEN, "");
provider.setCredentials(AuthScope.ANY, credentials);
HttpClient httpClient = HttpClientBuilder.create()
        .setDefaultCredentialsProvider(provider)
        .build();

HttpGet httpGet = new HttpGet("https://sonarqube-XXX.co.uk/api/components/search?qualifiers=DIR&q=master");
HttpResponse response = httpClient.execute(httpGet);
String componentInfo = EntityUtils.toString(response.getEntity());