当前位置: 首页 > 知识库问答 >
问题:

如何使用Java获取GitHub项目文件夹下所有文件及其原始内容的列表?

国跃
2023-03-14

我试图读取GitHub URL的特定文件夹下的文件和每个文件的原始内容,但我没有得到正确的响应。

基本上,我想这样做:

>

  • 我有一个公共GitHub项目,其中有一个文件夹folder1。这个folder1包含许多文件XML/JSON

    我想使用指向folder1:https://github.com/comapny/project/tree/master/folder1/tempFolder的链接并获取其内容。

    在这个文件夹下,我有许多文件,我想读取其内容的原始数据。

    到目前为止,我能够对文件夹下的单个文件及其原始数据发出请求,但无法读取文件夹下的文件,也无法读取所有文件及其内容。

    以下是我目前掌握的代码:

    import org.apache.http.StatusLine;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    import java.io.IOException;
    import java.nio.charset.StandardCharsets;
    
    public class TestMain {
        public static void main(String[] args) throws IOException {
            //Read the GitHub files
            final String inputURL = "https://github.com/company/project/tree/master/XML/withData";
            //final String inputURL = "https://raw.githubusercontent.com/company/project/blob/master/XML/withData/myFileName.xml";
            CloseableHttpClient httpClient = HttpClients.createDefault();
            CloseableHttpResponse response = httpClient.execute(new HttpGet(inputURL));
            StatusLine statusLine = response.getStatusLine();
            String responseBody = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
            System.out.println("Response Code : " + statusLine.getStatusCode() + " ---- " + "Response Phrase :  " + statusLine.getReasonPhrase());
            System.out.println("Response body: " + responseBody);
        }
    }
    
  • 共有1个答案

    毛德华
    2023-03-14

    您可以使用GitHub的存储库内容API来列出目录中的文件以及读取文件内容。

    例如,在名为“XML”的目录中列出文件可能如下所示:

    https://api.github.com/repos/company/project/contents/XML/

    响应将是目录中的项目数组。每个项目都包括属性type,它让您知道该项目是文件还是目录,以及url,一个请求该项目的链接。

    通过对项目的URL执行新请求,您可以通过其content属性访问文件的内容,或者如果它是一个目录,您可以访问其中的另一个文件数组。

     类似资料:
    • 我使用Spring Batch MultiResourceItemReader来读取多个模块文件。这些文件位于父目录及其子目录中。 已经尝试: > 使用PathMatchingResourcePatterResolver,如代码示例中所示(灵感来自JAR中的查找资源与PathMatchingResourcePatterResolver和URLClassloader

    • 问题内容: 我想使用“文件类”从项目文件夹中获取文件,我该怎么办? 问题答案: 嗯,有很多不同的方法来获取Java文件,但这是一般要点。 不要忘记,您至少需要将其包装在a 中,因为File是其中的一部分,这意味着它必须具有try-catch块。 不是要解决Ericson的问题,而是如果您使用的是实际的软件包,则除非明确使用文件的位置,否则文件的位置将有问题。相对路径与Packages混为一谈。 即

    • 我使用php删除文件夹包含删除的帖子的图像。我正在使用下面的代码,我在网上找到的,做得很好。 我想知道当文件夹中有其他文件夹时,如何仅删除文件夹中的特定文件夹。 当我使用下面的代码时,如何做到这一点?使用:/dev/images/norman/8-

    • 本文向大家介绍Python列出一个文件夹及其子目录的所有文件,包括了Python列出一个文件夹及其子目录的所有文件的使用技巧和注意事项,需要的朋友参考一下 python简介 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。 像Perl语言一样, Python 源代码同样遵循 G

    • 我想通过使用“文件类”从项目文件夹中获取文件,我如何做到这一点?

    • 问题内容: 我需要使用文件夹中文件的所有名称创建一个列表。 例如,如果我有: 我想将它们存储为 with 作为值。 用Java做到最好的方法是什么? PS:我在Mac OS X上 问题答案: 你可以这样做: 你只想获取JPEG文件还是所有文件?