c# HttpResponseMessage - 如何从响应中获取 X-Total-Pages 并使用它来获取所有结果而无需分页

c# HttpResponseMessage - how to get X-Total-Pages from response and use it to get all results without pagination

您好,我正在使用它来调用 GitLab API:

HttpResponseMessage response = await client.GetAsync(apiPath);

在此响应中有 headers > 结果视图 > X-Total-Pages 键

value in visual

如何获取它的值?

所以我写了这个方法来从 GIT API 获取标签列表。我使用 X-Total-Pages 而不是 X-Total 并且它可以避免 API 分页结果并将其全部放入列表中:

                {
                    List<Tag> tags = new List<Tag>();
                    List<Tag> one_site_of_tags = new List<Tag>();
                    string apiPath = WhichRepo(repository)[0] + "projects/" + appId + "/repository/tags";
                    HttpResponseMessage response = await client.GetAsync(apiPath);                   
                    string number_tag_sites = response.Headers.FirstOrDefault(x => x.Key == "X-Total-Pages").Value.FirstOrDefault();                    
                   
                    for (int site = 1;
                        site <= Int16.Parse(number_tag_sites);
                        site++)
                    {
                        string apiPath2 = apiPath + "?page=" + site;
                        var content = await client.GetStringAsync(apiPath);
                        one_site_of_tags = JsonConvert.DeserializeObject<List<Tag>>(content);
                        tags.AddRange(one_site_of_tags);
                    }                                        
                    
                    return tags;
                }