Не удалось получить доступ к API веб-сервиса Sonarqube

Я пытаюсь использовать API веб-сервиса Sonarqube. Мне нужно передать некоторые параметры вместе с именем пользователя и паролем в этот API веб-сервиса.

Для этой цели я написал следующий код:

HttpClient client = new HttpClient();
        String uri = "http://myUrl.sonar.com";
        client.getState().setCredentials(new AuthScope(uri, 8080, AuthScope.ANY_REALM),
                new UsernamePasswordCredentials("username", "password"));
        GetMethod get = new GetMethod("http://myUrl.sonar.com/api/resources?"
                + "resource=110041&format=json&metrics=ncloc,coverage&verbose=true"
                + "&metrics=sqale_index,sqale_debt_ratio,ncloc,sqale_rating");
        get.setDoAuthentication(true);
        try {
            int status = client.executeMethod(get);
            System.out.println(status + "\n" + get.getResponseBodyAsString());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            get.releaseConnection();
        }

Когда я запускаю этот код из Eclipse, он возвращает

401
{"err_code":401,"err_msg":"Unauthorized"}

Любая вероятная причина для этого? имя пользователя и пароль правильные.


person Srijani Ghosh    schedule 02.06.2016    source источник
comment
Разрешения правильные?   -  person CSchulz    schedule 03.06.2016
comment
Есть ли у пользователя разрешение на просмотр проекта 110041?   -  person Julien L. - SonarSource Team    schedule 03.06.2016
comment
@JulienL.-SonarSourceTeam, я попытался просмотреть проект с веб-сайта сонара, он работает нормально. Нужно ли еще где-то проверять?   -  person Srijani Ghosh    schedule 06.06.2016
comment
Это должно быть хорошо. Тогда вы уверены, что используете правильный логин/пароль?   -  person Julien L. - SonarSource Team    schedule 06.06.2016
comment
@JulienL.-SonarSourceTeam да..   -  person Srijani Ghosh    schedule 06.06.2016
comment
Может попробовать выполнить WS запрос в браузере (в котором вы подключаетесь с тем же логином/паролем)?   -  person Julien L. - SonarSource Team    schedule 06.06.2016
comment
@JulienL.-SonarSourceTeam . Пытался. Я вошел в систему через браузер, а затем на другой вкладке попытался выполнить команду: sonar.wincor-nixdorf.com/api/. И он работает нормально, и он получает все результаты.   -  person Srijani Ghosh    schedule 06.06.2016
comment
Так что, вероятно, в коде Java что-то не так.   -  person Julien L. - SonarSource Team    schedule 06.06.2016
comment
У нас есть API для вызова WS. Например, вы можете сделать: WsClient client = WsClientFactories.getDefault().newClient(HttpConnector.newBuilder() .url(server.getUrl()) .credentials(LOGIN, PASSWORD) .build()); client.wsConnector().call(новый GetRequest(sonar.wincor-nixdorf.com/api/))   -  person Julien L. - SonarSource Team    schedule 06.06.2016
comment
Спасибо @JulienL.-SonarSourceTeam, не могли бы вы предоставить дополнительную информацию об этом? может быть какой-то URL или документация? Большое спасибо!   -  person Srijani Ghosh    schedule 06.06.2016
comment
Документ все еще находится в стадии разработки, но вы можете посмотреть его в нашем ИТ-отделе: github.com/SonarSource/sonarqube/blob/master/it/it-tests/src/ и github.com/SonarSource/sonarqube/blob/ например, master/it/it-tests/src/. Библиотека доступна в поиске sonar-ws. maven.org/   -  person Julien L. - SonarSource Team    schedule 06.06.2016
comment
Спасибо @JulienL.-SonarSourceTeam. Наверняка посмотрит.   -  person Srijani Ghosh    schedule 06.06.2016
comment
@JulienL.-SonarSourceTeam Пожалуйста, добавьте свой комментарий в качестве ответа.   -  person CSchulz    schedule 06.06.2016


Ответы (1)


Вы должны попробовать наш API, чтобы запросить какой-либо URL-адрес, см. несколько примеров в наших информационных технологиях, чтобы использовать его:

Вам нужно использовать sonar-ws, последняя версия доступна здесь: http://search.maven.org/#artifactdetails%7Corg.sonarsource.sonarqube%7Csonar-ws%7C5.6%7Cjar

person Julien L. - SonarSource Team    schedule 06.06.2016
comment
404 на обоих этих URL - person Bradley D; 20.12.2018