Iobservableを返す単純なWeb APIがあります。私はそれを購読することができるようにObservableを取得するためにHttpClientを使用しています。私の問題は、サブスクリプションで返されたIobservableが「空の」結果を送信することです。Web APIからIObservableを取得する方法
サーバ
public IObservable<DataItem> GetDataItems()
{
return Observable.Generate(0, i => i < 10, i => i + 1,
i => new DataItem
{
Id = i,
Name = String.Format("Storage{0}",i)
});
}
CLIENT
public IObservable<DataItem> GetDataItems()
{
using (HttpClient apiClient = new HttpClient())
{
apiClient.BaseAddress = new Uri("http://localhost:9001");
apiClient.DefaultRequestHeaders.Add("x-user-authentication", "xxxxxx");
return apiClient
.GetAsync("api/xxxx/yyyy").Result.Content
.ReadAsAsync<DataItem>().ToObservable();
}
}
var source = GetDataItems();
List<DataItem> items = new List<DataItem>();
IDisposable consoleSubscription = source.Subscribe(
x => Console.WriteLine("{0}:{1}", x.Id, x.Name),
ex => Console.WriteLine("OnError : {0} ", ex.Message),
() => Console.WriteLine("Encountered End of Stream")
);
consoleSubscription.Dispose();
私の問題は、私は戻って、サーバーからデータを取得していない午前です。私は「空」の観測を得る。私は私のコントローラに対して単体テストを書いて、データ項目を返す。
何か助けてください。私が間違っているところを理解できない。サーバーまたはクライアントにエラーはありません。
Nirvanaリンクのリンク腐敗を修正しました。テラコッタがそれを買った。 –
ニルヴァーナのリンクが機能していません。 –
私はそれを更新し、サンプルへのリンクを追加しました。 –