Вначале я пробовал использовать FtpWebRequest, но получал ошибки:
При использовании http прокси, получаю ошибку, что сервер нарушил протокол.
А при использовании ftp прокси, получаю ошибку, что "класс ServicePointManager не поддерживает прокси со схемой FTP."
Дальше я пробовал использовать WebClient. Без прокси, он работает, а вот, как только я использую прокси, он выдает: "Исключение во время запроса WebClient."
Вот код использования FtpWebRequest:
- Код: Выделить всё
Private Sub Download(ByVal filePath As String, ByVal filename As String)
Dim ftpServerIP As String = "адрес ftp сервера"
Dim ftpUserID As String = "login"
Dim ftpPassword As String = "pass"
Dim fileInf As New IO.FileInfo(filename)
Dim uri As String = "ftp://" + ftpServerIP + "/" + fileInf.Name
Dim reqFTP As FtpWebRequest
Try
Dim proxyObject As New WebProxy("ftp://192.168.1.1:3127")
Dim outputStream As FileStream = New FileStream(filePath + "\\" + filename, FileMode.Create)
reqFTP = FtpWebRequest.Create(New Uri("ftp://" + ftpServerIP + "/" + filename))
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile
reqFTP.UseBinary = True
reqFTP.Credentials = New NetworkCredential(ftpUserID, ftpPassword)
reqFTP.Proxy = proxyObject
Dim response As FtpWebResponse = reqFTP.GetResponse()
'Stream(ftpStream = response.GetResponseStream())
Dim ftpStream As IO.Stream = reqFTP.GetRequestStream()
Dim cl As Long = response.ContentLength
'Int(bufferSize = 2048)
'Int(readCount)
'Dim buffer As Byte()
Dim bufferSize As Integer = 2048
Dim buff(bufferSize) As Byte
Dim readCount As Integer
readCount = ftpStream.Read(buff, 0, bufferSize)
While readCount > 0
outputStream.Write(buff, 0, readCount)
readCount = ftpStream.Read(buff, 0, bufferSize)
End While
ftpStream.Close()
outputStream.Close()
response.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Download Error")
End Try
End Sub
А вот код WebClient:
- Код: Выделить всё
Dim wc As New WebClient
'proxyObject.Credentials = New NetworkCredential("Login", "Password")
'wc.Proxy = proxyObject
wc.Credentials = New NetworkCredential("Login", "Password")
wc.DownloadFile(uri, "C:\Temp\1.rar")
Буду рад любому совету!