ReadAsStringAsync 无法获取所有记录

ReadAsStringAsync can't get all records

我正在尝试在控制台应用程序中使用 Web API,如下所示。

HttpResponseMessage rsp = await client.GetAsync("https://example.com/api/employees"); 
var responseString = await rsp.Content.ReadAsStringAsync();
var outer = Newtonsoft.Json.JsonConvert.DeserializeObject<OData<JArray>>(responseString);

我只能从那里得到 100 条记录。实际上 outer.count 应该远远超过 100。

返回的记录数取决于 Web API 服务的 HttpGet 方法的内部实现。如果可以post执行Get方法的EmployeesController,那么就可以解决问题了。这里没有太多信息可以说明为什么您得到的低于预期。

来电

HttpResponseMessage rsp = await client.GetAsync("https://example.com/api/employees");

简单的说在WebAPI服务上有一个方法"signature"

public IEnumerable<Employee> Get()
{
   // Dummy. Not returning IEnumerable<Employee>  exactly, only for illustration
   return employees;
}

在此方法中,可能存在限制返回行数的约束。例如。

public IEnumerable<Employee> Get()
{
   // There could be such a constraint as illustrated below.
   // Note the Take(100), this is the constraint or restriction
   return employees.Where(x => x.Department == "HR").Take(100);
}

最后,没有看到代码,没有人能告诉你为什么你没有得到预期的结果。如果您不拥有 API,那么您需要联系拥有您正在使用的网络 api 服务的一方。