2010-10-25 75 views
0

我的應用程序當前發送GET httpwberequests並在讀取每個請求的響應流之後分析內容,並且一遍又一遍地重複此過程。據我所知,我需要實現一個連續的http流,它使用相同的GET請求,但連接保持打開狀態。我將如何更改現有代碼來執行此操作?連續的http流

 Dim responseReader As StreamReader = Nothing 
     Dim Reader As StreamReader = Nothing 
     Dim responseData As String = "" 
     Dim webresponse As HttpWebResponse = Nothing 
     Dim responseStream As Stream = Nothing 
     Dim returnContent As String = Nothing 
     Dim cdata As Integer = 0 

     webRequest = TryCast(System.Net.WebRequest.Create(url), HttpWebRequest) 

     Try 

      webresponse = DirectCast(webRequest.GetResponse(), HttpWebResponse) 
      responseStream = webresponse.GetResponseStream 
      If webresponse.ContentEncoding.ToLower().Contains("gzip") Then 
       responseStream = New GZipStream(responseStream, CompressionMode.Decompress) 
      ElseIf webresponse.ContentEncoding.ToLower().Contains("deflate") Then 
       responseStream = New DeflateStream(responseStream, CompressionMode.Decompress) 
      End If 

      Reader = New StreamReader(responseStream, Encoding.Default) 
      responseData = Reader.ReadToEnd() 

     Catch 
      Throw 
     Finally 
      webRequest.GetResponse().GetResponseStream().Close() 
      Reader.close() 

     End Try 

     Return responseData 

流式HTTP實現允許通過單個持久HTTp請求實時化數據。它訪問一個數據源,繼續發送該響應的活動。我需要從響應中讀取數據,處理它,然後繼續讀取響應並繼續此過程,直到連接關閉。 這是否會像一個異步請求呢?

+0

http的設計不是連續的。它旨在發送和接收(相對)短的消息。 – David 2010-10-25 19:25:34

回答

1

這實際上是HTML5的目標之一。您可以看一下http://socket.io/以查看適用於HTML4瀏覽器的實現。