0

Je suis en train de lire un flux à partir d'un serveur à l'aide de System.Net.HttpClient. Le problème que j'ai est que le flux est bloqué jusqu'à ce que toute la réponse soit en mémoire. Je voudrais commencer à gérer la réponse car les données proviennent du réseau. Attendre la réponse entière avant l'analyse, est trop lent.Windows PCL HttpClient

HttpClient client = new HttpClient(); 
... 
await client.GetStreamAsync(); 
/* another way I tried */ 
HttpResponseMessage response = await clientGetAsync(); 
if(response.StatusCode == HttpStatusCode.OK) { 
    await response.Content 
} 

await response.Content.ReadAsStreamAsync(); 

Est-il possible, il ne doit pas être avec HttpClient, pour obtenir le flux car il provient du réseau à l'aide des bibliothèques Windows classe Portable?

Répondre

1

Vous devez utiliser SendAsync avec HttpCompletionOption.ResponseHeadersRead pour empêcher HttpClient de mettre en tampon le flux de réponse. Une fois que vous avez utilisé cette option, le ReadAsStreamAsync retournera un wrapper autour du flux réseau réel au lieu d'un MemoryStream.