Cómo recuperar un IObservable de la API web
Tengo una API web simple que devuelve un Iobservable. Estoy usando HttpClient para obtener el Observable para poder suscribirme. Mi problema es que Iobservable devuelto en la suscripción envía un resultado 'vacío'.
SERVIDOR
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)
});
}
CLIENTE
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();
Mi problema es que no estoy recibiendo ningún dato del servidor. Obtengo un observable 'Vacío'. Escribí una prueba de unidad contra mi controlador y me devuelve los datos.
Cualquier sugerencia por favor ayuda. Incapaz de entender donde me voy mal. No hay errores en el servidor o cliente.