Comment utiliser SonarQube API web?

Auparavant, j'ai demandé à comment exporter des données personnalisées à partir de SonarQube Base de données, et le Sonar de l'Équipe suggère de moi que je dois utiliser l'API Web.

Après quelques recherches, je suis toujours en difficulté sur la façon d'utiliser l'API Web. (
Je suis très familier avec la façon dont le Web API travaille)

Après la lecture de ce post, je me rends compte que je peux utiliser du code Java pour le faire. (Je viens juste de passer à travers la façon d'utiliser Apache Http Client) Cependant, après l'exécution

HttpGet httpGet = new HttpGet("http://localhost:9000/api/issues?metrics=lines");(copié à partir de ce post)

J'ai eu:

HTTP/1.1 404
{"errors":[{"msg":"Unknown url : /api/issues"}]}

Après je modifier cette ligne:

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

J'ai eu:

HTTP/1.1 200
<!DOCTYPE html><html lang="en"><head><meta http-equiv="content-type" content="text/html; charset=UTF-8" charset="UTF-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"><link href="/apple-touch-icon.png"><link sizes="57x57" href="/apple-touch-icon-57x57.png"><link sizes="60x60" href="/apple-touch-icon-60x60.png"><link sizes="72x72" href="/apple-touch-icon-72x72.png"><link sizes="76x76" href="/apple-touch-icon-76x76.png"><link sizes="114x114" href="/apple-touch-icon-114x114.png"><link sizes="120x120" href="/apple-touch-icon-120x120.png"><link sizes="144x144" href="/apple-touch-icon-144x144.png"><link sizes="152x152" href="/apple-touch-icon-152x152.png"><link sizes="180x180" href="/apple-touch-icon-180x180.png"><link type="image/x-icon" href="/favicon.ico"><meta name="application-name" content="SonarQube"/><meta name="msapplication-TileColor" content="#FFFFFF"/><meta name="msapplication-TileImage" content="/mstile-512x512.png"/><link href="/css/sonar.bf342fee.css" ><title>SonarQube</title></head><body><div id="content"><div class="global-loading"><i class="spinner global-loading-spinner"></i> <span class="global-loading-text">Loading...</span></div></div><script>window.baseUrl=""</script><script src="/js/vendor.0ba4fd94.js"></script><script src="/js/app.bf342fee.js"></script></body></html>

Qui n'est pas ce que j'attends en tant que bien.

Je me demande quelle est la bonne façon d'utiliser le Web API? Par exemple, si je veux obtenir les odeurs de code pour un projet. La façon dont le code doit être en Java?

Voici le code que j'utilise pour le moment:

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));
        }
    }
}

Apprécier pour toute aide ou des conseils!

InformationsquelleAutor MaXon | 2017-09-20