Sonatype Nexus Rest API 401未经授权
我正在尝试使用RESTAPI从java的安全nexus存储库获取工件。我得到了401授权作为回应 我需要做什么才能授权自己Sonatype Nexus Rest API 401未经授权,rest,repository,nexus,sonatype,Rest,Repository,Nexus,Sonatype,我正在尝试使用RESTAPI从java的安全nexus存储库获取工件。我得到了401授权作为回应 我需要做什么才能授权自己 String url = "http://myNexus.com/service/local/artifact/maven/redirect?r=my-repo&g=my.group&a=my-artifact&v=LATEST"; HttpClient client = new DefaultHttpClient(); HttpGet reque
String url = "http://myNexus.com/service/local/artifact/maven/redirect?r=my-repo&g=my.group&a=my-artifact&v=LATEST";
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = null;
response = client.execute(request);
System.out.println("Response Code : "
+ response.getStatusLine().getStatusCode());
我建议使用Nexus客户端库,而不是为RESTAPI编写自己的Java包装器。更多详细信息和示例链接是我使用java模拟GET方法。第三个参数“auth”是基本的http身份验证示例。
REST的全部意义在于,您独立于库、特定语言和运行时,这当然是事实。然而,URL从未被设计为RESTAPI,也没有遵循任何REST理念。这个问题的标题明确提到了“RESTAPI”和Sonatype。所以我不明白你怎么能说这个URL从来没有被设计成REST API或遵循REST API。这并没有改变它不是传统意义上的REST API的事实。另外,你提供的链接是针对Nexus 3的,它是一个完全独立和不同的应用程序。。它确实有一个RESTAPI。。
public String sendGet(String url, String param, String auth) {
String result = "";
BufferedReader in = null;
try {
String urlName = url + "?" + param;
URL realUrl = new URL(urlName);
URLConnection conn = realUrl.openConnection();
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
conn.setRequestProperty("Accept", "application/json");
conn.addRequestProperty("Authorization", "Basic " + auth);
conn.connect();
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}