Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
GIP
4 / 4 / 0
Регистрация: 07.04.2010
Сообщений: 200
#1

Скачивание файла из интернет функцией URLDownloadToFile через прокси сервер - VB

13.01.2016, 19:18. Просмотров 817. Ответов 18
Метки нет (Все метки)

Всем привет!
Уважаемые гуру кода прошу помочь.....
Является ли препятствием для работы функции URLDownloadToFile выход в интернет через прокси сервер,
и если да, то как решить этот вопрос если все данный по идентификации в принципе есть ?
Спасибо за помощь....
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2016, 19:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Скачивание файла из интернет функцией URLDownloadToFile через прокси сервер (VB):

Как работать через прокси-сервер?
Есть программа (IRC-клиент). Какие команды нужно посылать прокси (HTTP) чтоб...

Будет ли WinSock работать на машине, подключённой через прокси-сервер?
Вопрос: Будет ли WinSock работать на машине, подключённой через прокси-сервер?...

Скачивание файла с интернета через http прокол
Всем привет. Хотел найти в интернете файлообменник, с которого можно качать...

Отслеживание процесса загрузки файла используя функцию URLDownloadToFile
Как можно отследить прогресс загрузки файла, из Интернет, используя функцию...

Закачка файла на FTP сервер через VB
Помогите ПЛИЗЗЗЗЗЗЗЗЗЗЗЗЗЗЗ!!!!!!!!!!! Как закачать файл на сайт, где адрес...

Интернет через прокси-сервер
Есть доступ в интернет на одном компьютере, хочу поделиться интернетом с другим...

18
fever brain
oh my god
1100 / 573 / 108
Регистрация: 05.01.2016
Сообщений: 1,763
Записей в блоге: 7
13.01.2016, 21:32 #2
А можно и не использовать WinApi

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Option Explicit
 
Dim WithEvents cb As CommandButton, l&, t&, w&, h&
Const r = 90, sl$ = "\"
 
Private Sub cb_Click()
    Dim link$, Path$, j$()
    link = "http://pendientedemigracion.ucm.es/info/vivataca/images/n79/informaticos.jpg"
    j = Split(link, "/")
    
    'На киберфоруме эта строка отображаеться без слэша ??? \рабочий стол
    Path$ = Environ("userprofile") & "\рабочий стол" & sl & j(UBound(j))
 
    
    ' скачиваем файл из интернета
    DownloadFile link, Path$
    ' открываем скачанный файл
    CreateObject("wscript.shell").Run """" & Path & """"
End Sub
 
Private Sub Form_Load()
    l = r: t = r: w = r * 20: h = r * 4
    Set cb = Controls.Add("vb.CommandButton", "cb")
    With cb
        .Move l, t, w, h
        .Caption = "Загрузить и открыть"
        .Visible = 1
    End With
End Sub
 
Function DownloadFile(ByVal URL$, ByVal LocalPath$) As Boolean
    ' Функция скачивает файл по ссылке URL$
    ' и сохраняет его под именем LocalPath$
    Dim XMLHTTP, ADOStream, FileName
    On Error Resume Next: Kill LocalPath$
 
    Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
    XMLHTTP.Open "GET", Replace(URL$, "", "/"), "False"
    XMLHTTP.send
    If XMLHTTP.statustext = "OK" Then
        Set ADOStream = CreateObject("ADODB.Stream")
        ADOStream.Type = 1: ADOStream.Open
        ADOStream.Write XMLHTTP.responseBody
 
        ADOStream.SaveToFile LocalPath$, 2
        ADOStream.Close: Set ADOStream = Nothing
        DownloadFile = True
    Else
        'MsgBox "Не удаётся скачать файл " & XMLHTTP.statustext
    End If
    Set XMLHTTP = Nothing
End Function
0
fever brain
oh my god
1100 / 573 / 108
Регистрация: 05.01.2016
Сообщений: 1,763
Записей в блоге: 7
13.01.2016, 21:44 #3
P.s
Я серёзно, не отображается в коде вот этот знак, попробуйте ктонибудь если не верите
для того чтобы его увидеть приходиться писать 2 слэша

Visual Basic
1
2
  x= ""
  y= "\"
0
Миниатюры
Скачивание файла из интернет функцией URLDownloadToFile через прокси сервер  
GIP
4 / 4 / 0
Регистрация: 07.04.2010
Сообщений: 200
13.01.2016, 21:46  [ТС] #4
Set cb = Controls.Add("vb.CommandButton", "cb") - ругается ..... у меня VB5
0
fever brain
oh my god
1100 / 573 / 108
Регистрация: 05.01.2016
Сообщений: 1,763
Записей в блоге: 7
13.01.2016, 21:53 #5
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Тогда закоментируй это
'Dim WithEvents cb As CommandButton, l&, t&, w&, h&

и это
'Set cb = Controls.Add("vb.CommandButton", "cb")

Затем закинь на форму кнопку, и дай ей имя (свойство>>Name) имя .. *CB*

Добавлено через 3 минуты
Вот я поменял
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Option Explicit
Dim l, t&, w&, h&
Const r = 90, sl$ = ""
 
Private Sub Form_Click()
    Dim link$, Path$, j$()
    link = "http://pendientedemigracion.ucm.es/info/vivataca/images/n79/informaticos.jpg"
    j = Split(link, "/")
    'На киберфоруме эта строка отображаеться без слэша ??? \рабочий стол
    Path$ = Environ("userprofile") & "\рабочий стол" & sl & j(UBound(j))
    ' скачиваем файл из интернета
    DownloadFile link, Path$
    ' открываем скачанный файл
    CreateObject("wscript.shell").Run """" & Path & """"
End Sub
 
Private Sub Form_Load()
    Me.Caption = "Нажми на форму и подожди 5 сек"
    Me.Move 100, 100, 5000, 900
End Sub
 
Function DownloadFile(ByVal URL$, ByVal LocalPath$) As Boolean
    ' Функция скачивает файл по ссылке URL$
    ' и сохраняет его под именем LocalPath$
    Dim XMLHTTP, ADOStream, FileName
    On Error Resume Next: Kill LocalPath$
 
    Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
    XMLHTTP.Open "GET", Replace(URL$, "", "/"), "False"
    XMLHTTP.send
    If XMLHTTP.statustext = "OK" Then
        Set ADOStream = CreateObject("ADODB.Stream")
        ADOStream.Type = 1: ADOStream.Open
        ADOStream.Write XMLHTTP.responseBody
 
        ADOStream.SaveToFile LocalPath$, 2
        ADOStream.Close: Set ADOStream = Nothing
        DownloadFile = True
    Else
        'MsgBox "Не удаётся скачать файл " & XMLHTTP.statustext
    End If
    Set XMLHTTP = Nothing
End Function
0
GIP
4 / 4 / 0
Регистрация: 07.04.2010
Сообщений: 200
13.01.2016, 21:55  [ТС] #6
j = Split(link, "/") - функцию split не понимает...
0
fever brain
oh my god
1100 / 573 / 108
Регистрация: 05.01.2016
Сообщений: 1,763
Записей в блоге: 7
13.01.2016, 21:55 #7
Цитата Сообщение от fever brain Посмотреть сообщение
sl$ = ""
Здесь должна быть косая линия, странно в сообщениях она почемуто не отображается
не знаю почему и знать нехочу, это ж сайт программистов, на таком сайте глюки неизбежны ..
введи её сам
0
fever brain
oh my god
1100 / 573 / 108
Регистрация: 05.01.2016
Сообщений: 1,763
Записей в блоге: 7
13.01.2016, 21:57 #8
Лови исходник, если не получиться переходи на VB6
0
Вложения
Тип файла: rar Form1.rar (1.1 Кб, 8 просмотров)
GIP
4 / 4 / 0
Регистрация: 07.04.2010
Сообщений: 200
13.01.2016, 22:08  [ТС] #9
да на 6 работает, на 5 нет функции split, что она делает ?

Добавлено через 3 минуты
в принципе ее можно написать самому на 5, спасибо...
так с прокси при таком способе тоже могут быть проблемы ?

Добавлено через 4 минуты
да и какой здесь механизм скачивания ?
0
Dragokas
Эксперт WindowsАвтор FAQ
16926 / 7011 / 851
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
13.01.2016, 22:09 #10
Цитата Сообщение от fever brain Посмотреть сообщение
Я серёзно, не отображается в коде вот этот знак, попробуйте ктонибудь если не верите
Багофича движка. Нужно ставить двойное \\
Цитата Сообщение от fever brain Посмотреть сообщение
и это
'Set cb = Controls.Add("vb.CommandButton", "cb")
Я конечно извиняюсь. А нафига в каждый код тыкать динамически создаваемые контролы. Это даёт какие то особые преимущества (особенно для примеров и ответов в темах) ?
Цитата Сообщение от fever brain Посмотреть сообщение
А можно и не использовать WinApi
И как Microsoft.XMLHTTP подхватит настройки прокси, если они например, не заданы в Internet Explorer-е
или если проксянок несколько, или если юзаем для разных целей одновременно два подключения - напрямую и через прокси?

Под проксянку лично на WinAPI не писал, но подозреваю, что все делается через

InternetOpen -> InternetConnect, в которой и указываются все данные авторизации proxy.
Пример на С++ (там без прокси, но почитав статью выше заменить пару аргументов не сложно).
0
GIP
4 / 4 / 0
Регистрация: 07.04.2010
Сообщений: 200
13.01.2016, 22:13  [ТС] #11
Цитата Сообщение от Dragokas Посмотреть сообщение
И как Microsoft.XMLHTTP подхватит настройки прокси, если они например, не заданы в Internet Explorer-е
т.е. если в IE заданы настройки прокси, то через API все должно нормально качаться ?
0
fever brain
oh my god
1100 / 573 / 108
Регистрация: 05.01.2016
Сообщений: 1,763
Записей в блоге: 7
13.01.2016, 22:15 #12
Цитата Сообщение от GIP Посмотреть сообщение
т.е. если в IE заданы настройки прокси, то через API все должно нормально качаться ?
Нет, теоретически они должны как-раз моим способом качаться, так как Microsoft.XMLHTTP это DLL'ка IE
0
GIP
4 / 4 / 0
Регистрация: 07.04.2010
Сообщений: 200
13.01.2016, 22:16  [ТС] #13
Цитата Сообщение от fever brain Посмотреть сообщение
Нет, теоретически они должны как-раз моим способом качаться, так как Microsoft.XMLHTTP это DLL'ка IE

это без проблем для всех версий IE ?
0
fever brain
oh my god
1100 / 573 / 108
Регистрация: 05.01.2016
Сообщений: 1,763
Записей в блоге: 7
13.01.2016, 22:17 #14
Запчасть от Internet Explorer'а, которая использует общую папку с настройками юзера ..
но это теоретически .. должно получиться
0
GIP
4 / 4 / 0
Регистрация: 07.04.2010
Сообщений: 200
13.01.2016, 22:18  [ТС] #15
насколько я знаю функцию URLDownloadToFile IE тоже до 8ой версии использовал в своей работе...
0
Dragokas
Эксперт WindowsАвтор FAQ
16926 / 7011 / 851
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
13.01.2016, 22:20 #16
Цитата Сообщение от GIP Посмотреть сообщение
т.е. если в IE заданы настройки прокси, то через API все должно нормально качаться ?
Исходя из кода fever brain, только мое предположение. Лично не проверял.

Если нужно быстро и по простому, воспользуйтесь утилитой curl или wget.
Пример ее использования с указанием настроек прокси можете подсмотреть в этом примере
или в хелпе из командной строки wget --help
Если по нему будут вопросы, спрашивать не в этом разделе, а в Windows Batch.
0
GIP
4 / 4 / 0
Регистрация: 07.04.2010
Сообщений: 200
13.01.2016, 22:23  [ТС] #17
спасибо за ответы....буду еще разбираться....
0
fever brain
oh my god
1100 / 573 / 108
Регистрация: 05.01.2016
Сообщений: 1,763
Записей в блоге: 7
13.01.2016, 22:33 #18
Цитата Сообщение от Dragokas Посмотреть сообщение
А нафига в каждый код тыкать динамически создаваемые контролы
Ну нравится мне так делать, дольше рассказывать что и куда надо закинуть, а исходники заливать по каждому случаю тоже не хочется, кстати с заливкой тоже баги наверное форум сейчас заточен строго на Internet Explorer, другим браузерам хваленные функции форума недоступны .. поэтому, пишу ручками

Если Split не работает, тогда допиши примерно такую строчку [Косая линия] рабочий стол [Косая линия] 1.jpg
0
GIP
4 / 4 / 0
Регистрация: 07.04.2010
Сообщений: 200
14.01.2016, 17:05  [ТС] #19
сегодня попробовал скачать файл из локальной сети через прокси сервер функцией URLDownloadToFile, все прошло успешно, без проблем...
0
14.01.2016, 17:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2016, 17:05
Привет! Вот еще темы с решениями:

Настройка работы интернет через локальный прокси-сервер
Добрый день! Сразу прошу прощения за глупый вопрос просто этого дела я никогда...

При передаче post запроса через прокси сервер в ответ приходят ошибки с прокси сервера
При передаче post запроса через прокси сервер в ответ прилетают ошибки с прокси...

При скачивании файла через URLDownloadToFile и из браузера скачиваются разные файлы
Здрасте, я тут немного охреневаю. Есть файл на серваке, и есть код: ...

Скачивание файла на сервер
Как скачать файл c чужого сайта на свой, если мы получаем прямую ссылку на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru