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

问题描述

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

this.postWithApiUrl(url,this.req).then(response => { console.log(response); });

此响应中包含标题>结果视图> 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;
                }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...