我正在尝试使用 Sonarqube 网络服务 API。我需要将一些参数连同用户名和密码一起传递给这个 Web 服务 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"}
这有什么可能的原因吗?用户名和密码正确。