При попытке закачать "большой" файл (размер более 12249 байт)
в бинарный массив, закачивается только 12249 байт:
Dim myWRequest As System.Net.WebRequest = System.Net.WebRequest.Create("
http://server/dwnlds/test.dat")
Dim myResponse As WebResponse = myWRequest.GetResponse()
Dim myStream As Stream = myResponse.GetResponseStream()
Dim tmpBytes As Byte()
ReDim tmpBytes(myWRequest.ContentLength — 1)
Console.WriteLine(myStream.Read(tmpBytes, 0, myWRequest.ContentLength)) ' Возвращает 12249
Это глюк или фича?
Здравствуйте Nail, Вы писали:
N>При попытке закачать "большой" файл (размер более 12249 байт)
N>в бинарный массив, закачивается только 12249 байт:
N>Dim myWRequest As System.Net.WebRequest = System.Net.WebRequest.Create("http://server/dwnlds/test.dat")
N>Dim myResponse As WebResponse = myWRequest.GetResponse()
N>Dim myStream As Stream = myResponse.GetResponseStream()
N>Dim tmpBytes As Byte()
N>ReDim tmpBytes(myWRequest.ContentLength — 1)
N>Console.WriteLine(myStream.Read(tmpBytes, 0, myWRequest.ContentLength)) ' Возвращает 12249
Я бы вообще не стал полагаться на ContentLength. Во-первых, сервер вообще не обязан его выставлять. Во-вторых, существует такая штука, как Chunked Transfer Encoding, когда контент передается кусками и у каждого из них свой Content Lenght. Вполне возможно, что ты попал на одну из этих ситуаций.