Sonatype Nexus Rest API 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

我正在尝试使用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 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;
}