Загрузка через ftp с помощью http proxy [duplicate]

Следуя идее Адама. Сделайте свой подготовленный оператор вроде select my_column из my_table, где search_column in (#) Создайте строку x и заполните ее числом «?,?,?» в зависимости от вашего списка значений. Затем просто измените # в запросе на новую строку String x наполнитель

1
задан Martin Prikryl 31 October 2015 в 09:24
поделиться

1 ответ

FtpWebRequest не поддерживает HTTP-прокси для некоторых операций, включая загрузку файлов. Очевидно, что задокументирован в MSDN :

Если указанный прокси-сервер является прокси-сервером HTTP, поддерживаются только команды DownloadFile, ListDirectory и ListDirectoryDetails.

Комментарий к CodeProject - просто глупость. Вы не можете верить всему, что вы найдете в Интернете.

WebClient использует FtpWebRequest внутренне, поэтому вы также не можете его использовать.

Невозможно загрузить файл в FTP через HTTP-прокси со стандартными библиотеками .NET.

Вы должны использовать стороннюю библиотеку FTP.


Например, с помощью сборки WinSCP .NET , вы можете использовать:

// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
    Protocol = Protocol.Ftp,
    HostName = "example.com",
    UserName = "user",
    Password = "mypassword",
};

// Configure proxy
sessionOptions.AddRawSettings("ProxyMethod", "3");
sessionOptions.AddRawSettings("ProxyHost", "proxy");

using (Session session = new Session())
{
    // Connect
    session.Open(sessionOptions);

    // Upload file
    string localFilePath = @"C:\path\file.txt";
    string pathUpload = "/file.txt";
    session.PutFiles(localFilePath, pathUpload).Check();
}

Для параметров для SessionOptions.AddRawSettings см. исходные настройки .

(я автор WinSCP)

3
ответ дан Martin Prikryl 15 August 2018 в 22:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: