3
我使用HttpWebResponse.GetResponseStream
來訪問互聯網廣播流,並且想要從響應流中讀取一些數據,然後斷開連接。但是,我總是無限期地掛在流的Dispose上。下面的單元測試將顯示「正在清理networkStream ...」,但從未達到「完成」。爲什麼是這樣?我應該修復它只是不打擾我的networkStream的處置?HttpWebResponse GetResponseStream掛在配置
[Test]
public void CanStreamMP3Radio()
{
string url = @"http://radio.reaper.fm/stream/";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
int total = 0;
byte[] buffer = new byte[1024];
using(var networkStream = resp.GetResponseStream())
{
do
{
int bytesRead = networkStream.Read(buffer, 0, buffer.Length);
Console.WriteLine("{0} bytesRead", bytesRead);
total += bytesRead;
} while (total < 16384);
Console.WriteLine("Cleaning up networkStream...");
}
Console.WriteLine("Finished");
}
這一個掛過 - 我沒有得到「完成」 – 2011-05-02 09:29:57
就試了一下,我得到這個URL相同的結果...怪異 – 2011-05-02 09:34:54
@馬克荒地,看到我更新的答案 – 2011-05-02 10:24:02