Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / VB.net HttpWebRequest загрузка файла с определенной позиции / 13 сообщений из 13, страница 1 из 1
15.10.2012, 19:51
    #37999230
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
Здравствуйте.
опишу свою задачу. нужно сделать чтото типо довнлоад менеджера для своего приложения.
для того чтобы реализовать функцию докачки файла из интернета необходимо произвести загрузку файла не с 1 байта а с последней недокаченой позиции. ну например с 345345байта.
пробовал со стрим ридером фантазировать но так и ничего не добился. позицию чтения никак не установить. думал что получится установить позицию через функцию read c параметрами буфер, индекс, коунт. но ошибся в этом).

помогите пожалуйста построить код. максимум чего я добился это этого
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    Dim url = "http://ya.ru"
        Dim request As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
        request.Method = "GET"
        request.UserAgent = "Mozila/5.O (Windows; U; Windows NT 5.1; ru; rv:1.9.0.15) Gecko/2OO912O2O8 Firefox/3.O.16"

        Dim stream As Stream = request.GetResponse().GetResponseStream()
        Dim reader As New StreamReader(stream, System.Text.Encoding.UTF7)
        Dim b(100) As Char

        reader.Read(b, 1, 100)
        Dim result As String = New String(b)
        Me.TextBox1.Text = Replace(result, Chr(0), "")
...
Рейтинг: 0 / 0
15.10.2012, 19:56
    #37999239
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
можно еще так добавить
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim n = -1
        Dim b() As String
        Do
            n = n + 1
            ReDim Preserve b(n)
            b(n) = Chr(reader.Read())

            If reader.EndOfStream = True Then Exit Do

        Loop



если тут сделать так чтобы в стрим пропускал определенное количество байт то проблема будет решена но я не представляю как это реализовать
...
Рейтинг: 0 / 0
15.10.2012, 19:58
    #37999242
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
surbanec, для этих целей в HTTP есть заголовок Range . Обрати внимание, что не все серверы его поддерживают. В случае если он его поддерживает, то в ответе будет заголовок Content-Range. Внимательно изучи спецификацию протокола, чтобы правильно это реализовать.
...
Рейтинг: 0 / 0
15.10.2012, 20:06
    #37999258
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
bazile,

а как тогда работают большинство даунлоад менеджеров? например download master.
если например сервер не поддерживает такой функции то он что не будет докачивать файл?
...
Рейтинг: 0 / 0
15.10.2012, 20:11
    #37999266
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
surbanecа как тогда работают большинство даунлоад менеджеров? например download master.
С помощью заголовка Range.

surbanecесли например сервер не поддерживает такой функции то он что не будет докачивать файл?
Он начнет качать его заново. Сообственно говоря, что еще ему остается делать? Думаю что большинство серверов поддерживает докачку. Я только говорю что надо быть готовым к ситуации когда он может и не поддерживать его.
...
Рейтинг: 0 / 0
15.10.2012, 20:23
    #37999282
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
bazile,

ок. понял отстал. мне значит остается добавить в хиадерсы параметр range.
request.Headers.Add("Range: 100")
ошибка . пишет что этот параметр необходимо изменить с помощью соответствующего свойства; имя параметра : name

что это значит и как добавить этот параметр в хидер?
...
Рейтинг: 0 / 0
15.10.2012, 20:29
    #37999284
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
surbanec, используй метод AddRange()
...
Рейтинг: 0 / 0
15.10.2012, 20:37
    #37999295
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
bazile,

попробуем
...
Рейтинг: 0 / 0
15.10.2012, 20:43
    #37999301
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
Код: vbnet
\r\n Dim url = "/topic/976497&pg=-1"\r\n        Dim request As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)\r\n        request.Method = "GET"\r\n        request.AddRange(500, 700)\r\n        request.UserAgent = "Mozila/5.O (Windows; U; Windows NT 5.1; ru; rv:1.9.0.15) Gecko/2OO912O2O8 Firefox/3.O.16"\r\n\r\n        Dim stream As Stream = request.GetResponse().GetResponseStream()\r\n        Dim reader As New StreamReader(stream, System.Text.Encoding.UTF7)\r\n        Dim b(100) As Char\r\n\r\n        Dim result As String = reader.ReadToEnd\r\n        \' Dim result As String = New String(b)\r\n        Me.TextBox1.Text = Replace(result, Chr(0), "")\r\n
\r\n
не получается. возвращает с 1 байта.
...
Рейтинг: 0 / 0
15.10.2012, 20:54
    #37999310
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
surbanec, попробуй для двоичного файла. Для html файла веб-сервер игнорирует range заголовки.
...
Рейтинг: 0 / 0
15.10.2012, 20:55
    #37999313
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
попробовал ссылку на мп3 файл http://78.159.122.138/listen.php?listen=282272
работает.а можно ли до загрузки какнить определить возможно ли загрузить с определенной позиции или нет?если можно то как?
...
Рейтинг: 0 / 0
15.10.2012, 21:23
    #37999336
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
surbanecа можно ли до загрузки какнить определить возможно ли загрузить с определенной позиции или нет?если можно то как?попробуй отправить HEAD-запрос, и посмотреть, есть ли в заголовках ответа Content-Range
...
Рейтинг: 0 / 0
15.10.2012, 21:31
    #37999346
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.net HttpWebRequest загрузка файла с определенной позиции
все спасибо за помощь. разобрался)
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / VB.net HttpWebRequest загрузка файла с определенной позиции / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]