Как вернуть IObservable из Web API
У меня есть простой веб-API, который возвращает Iobservable. Я использую HttpClient, чтобы получить Observable, чтобы я мог подписаться на него. Моя проблема в том, что возвращаемое Iobservable при подписке отправляет «пустой» результат.
SERVER
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)
});
}
КЛИЕНТ
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();
Моя проблема в том, что я не получаю никаких данных с сервера. Я получаю "Пустую" наблюдаемую. Я написал модульный тест для моего контроллера, и он возвращает данные.
Любые предложения, пожалуйста, помогите. Невозможно понять, где я иду не так. Нет ошибок на сервере или клиенте.