Как с помощью HttpWebRequest скачать файл? Возможно ли это?
Там такие возможности!!! Замена user agent, referer!
Текст страницы получить удается, а вот как файл стянуть не знаю:
Что еще за CreateFromUrl???
Там, кажется, вообще этого свойства нет.
Не больное исследование указывает на
System.Security.Policy.Zone.CreateFromUrl и
System.Security.Policy.Site.CreateFromUrl.
Но что связывает webrequest и это пространства?
Кажется, есть шанс на работу моего кода.
Он точнее не мой, а из msdn.
Короче, там используется streamreader, до меня только-что дошло, что он
только для char!
А я пытался переделать для битов.
Здесь возникает загвоздка:
Допустим, я получаю по 256 бит из потока.
Но как мне в итоге получить весь файл?
Нужно получить массив всего файла. Что-то не могу додуматься:
В принципе, можно сохранять на диск в файл, но лучше массив.
Подскажи.
Блин, не получается!!!
Мой код:
...
Dim s As Stream = HWReq.GetResponse.GetResponseStream
Dim BR As New BinaryReader(s)
Dim MassBs(256) As Byte
Dim FullFile() As Byte
Dim C As Integer = BR.Read(MassBs, 0, 256)
While C > 0
AddBytes(FullFile, MassBs)
C = BR.Read(MassBs, 0, 256)
End While
Dim FS As New FileStream("Image.jpg", FileMode.Create)
FS.Write(FullFile, 0, FullFile.Length)
...
Эта процедура, по идее "соединяет массивы":
Private Sub AddBytes(ByRef FileBytes() As Byte, ByVal ResMass() As Byte)
Dim Ufb As Integer, Ub As Integer = UBound(ResMass)
If FileBytes Is Nothing Then
Ufb = 0
Else
Ufb = UBound(FileBytes)
End If
ReDim Preserve FileBytes(Ufb + Ub)
Dim ind As Integer, ind2 As Integer
For ind = Ufb To UBound(FileBytes)
FileBytes(ind) = ResMass(ind2)
ind2 += 1
Next
End Sub
Это все прекрасно работает с потоками, но если он сетевой, то сохраняет
всякую муть(полосы разного цвета). Может, BR.Read(MassBs, 0, 256)
возвращает не только байты файла, а еще содержит какие-то данные? Дайте
ссылку на формат http, я искал - не нашел...