2016-03-18 23 views
0

私は以下のようなコンソールアプリケーションでwebapiを消費しようとしています。ReadAsiasAsyncはすべてのレコードを取得できません

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以上の値にする必要があります。

+1

APIのようなサウンドはおそらくページングを実装するため、すべての結果を得るには複数のリクエストを行う必要があります。 –

+0

ありがとうございました。その場合、すべてのレコードを取得する方法 –

+5

おそらくAPI固有のものです。ドキュメントを確認する\ – n8wrl

答えて

0

返されるレコード数は、Web APIサービスのHttpGetメソッドの内部実装によって異なります。 EmployeesControllerGetメソッドの実装を投稿できる場合は、問題を解決できます。あなたがなぜ予想よりも少なくなったのかを言うための情報はあまりありません。

コール

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

は、単にウェブAPIサービスで、このメソッド内で、次の「署名」

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を所有していない場合は、使用しているWeb APIサービスを所有する当事者に連絡する必要があります。