泽西岛接收档案清单

时间:2015-05-27 14:03:15

标签: java rest jersey

我想收到一份文件列表(只是Nexus服务器上的名字)。 这是我目前的代码:

ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
client.addFilter(new HTTPBasicAuthFilter(nexusUser, nexusPassword));
WebResource service = client.resource("http://localhost:8081/nexus/content/repositories/linkToRepo
ClientResponse response = service.accept("application/json").get(ClientResponse.class);

String output = response.getEntity(String.class);

但我只是从服务器收到html。我可以解析HTML但是有没有可能直接接收文件的名称和路径?

这里收到了HTML代码的简短摘录:

 <body>
<h1>Index of /repositories/linkToRepo</h1>
<table cellspacing="10">
  <tr>
    <th align="left">Name</th>
    <th>Last Modified</th>
    <th>Size</th>
    <th>Description</th>
  </tr>
  <tr>
    <td><a href="../">Parent Directory</a></td>
  </tr>
              <tr>
        <td><a href="http://localhost:8081/nexus/content/repositories/linkToRepo/1.0/">1.0/</a></td>
        <td>Wed May 27 14:38:37 CEST 2015</td>
        <td align="right">
                          &nbsp;
                      </td>
        <td></td>
      </tr>
              <tr>
        <td><a href="http://localhost:8081/nexus/content/repositories/linktoRepo/maven-metadata.xml">maven-metadata.xml</a></td>
        <td>Wed May 27 14:38:37 CEST 2015</td>
        <td align="right">
                          311
                      </td>
        <td></td>
      </tr>

亲切的问候, SirSandmann

2 个答案:

答案 0 :(得分:2)

您可以将http接受标头Accept设置为application/json; charset=UTF-8,以便接收更易于解析的内容。 (查看文档以了解如何操作https://jersey.java.net/documentation/1.19/client-api.html#d4e642

但是,您应该使用Nexus Rest API(请参阅文档https://oss.sonatype.org/nexus-restlet1x-plugin/default/docs/index.html)以获取您感兴趣的内容。

答案 1 :(得分:0)

谢谢你的提示! 我解决了通过jsoup解析的问题,因为我没有使用nexus rest api的经验。

这里的代码:

        ClientConfig config = new DefaultClientConfig();
        Client client = Client.create(config);
        client.addFilter(new HTTPBasicAuthFilter(nexusUser, nexusPassword));
        WebResource service = client.resource(repoPath);
        ClientResponse response = service.accept("application/json",
                "UTF-8").get(ClientResponse.class);

        String htmlString = response.getEntity(String.class);
        Document doc = Jsoup.parseBodyFragment(htmlString);
        Elements elements = doc.select("a[href]");
        return elements;