Sto tentando di utilizzare le classi .NET WebRequest/WebResponse per accedere all'API di streaming di Twitter qui "http://stream.twitter.com/spritzer.json"
.Lettura di dati da un flusso HTTP aperto
Devo essere in grado di aprire la connessione e leggere i dati in modo incrementale dalla connessione aperta.
Attualmente, quando chiamo il metodo WebRequest.GetResponse
, blocca fino a quando non viene scaricata l'intera risposta. So che esiste un metodo BeginGetResponse
, ma questo farà semplicemente la stessa cosa su un thread in background. Devo accedere al flusso di risposta mentre il download è ancora in corso. Questo non mi sembra possibile con queste lezioni.
C'è un commento specifiche su questo nella documentazione di Twitter:
"Si prega di notare che alcune librerie client HTTP restituiscono solo il corpo di risposta dopo che la connessione è stata chiusa dal server Questi clienti non funzionerà per l'accesso. l'API di streaming.È necessario utilizzare un client HTTP che restituirà i dati di risposta in modo incrementale.Le librerie client HTTP più robuste forniranno questa funzionalità.Il Apache HttpClient gestirà questo caso d'uso, ad esempio. "
Puntano a HttpClient di Appache, ma questo non aiuta molto perché ho bisogno di utilizzare .NET.
Qualche idea se questo sia possibile con WebRequest/WebResponse
o devo andare per le classi di rete di livello inferiore? Forse ci sono altre librerie che mi permetteranno di fare questo?
Thx Allen
non posso usare perché io WebRequest.BeginGetRequestStream non sto cercando di scrivere dati in modo asincrono sul server. Inoltre, nel tuo esempio chiami GetResponse. È a questo punto che WebRequest sta bloccando mentre scarica la risposta del server. Ma la connessione non si chiude mai perché è un flusso di dati effettivamente infinito. – user108687