Как в ZennoPoster загружать файлы на RapidGator через API?

stranger07

Client
Регистрация
29.03.2021
Сообщения
13
Благодарностей
2
Баллы
3
Привет всем! Кто подскажет как загружать файлы на файлообменник RapidGator через API: https://rapidgator.net/article/api/file#upload
Пример формы загрузки:
HTML:
<form method="post" action="http://pr3.rapidgator.net/?r=upload/api&uuid=0la4fzVZUMUulOliVcleXY0Kn9nmJGAy&sid=6eo5bhrslh3lggb8kmu8lgk781" enctype="multipart/form-data">
    <input type="file" name="file"/>
</form>
Как это выполнить через POST-запрос?
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 760
Благодарностей
2 399
Баллы
113
Привет всем! Кто подскажет как загружать файлы на файлообменник RapidGator через API: https://rapidgator.net/article/api/file#upload
Пример формы загрузки:
HTML:
<form method="post" action="http://pr3.rapidgator.net/?r=upload/api&uuid=0la4fzVZUMUulOliVcleXY0Kn9nmJGAy&sid=6eo5bhrslh3lggb8kmu8lgk781" enctype="multipart/form-data">
    <input type="file" name="file"/>
</form>
Как это выполнить через POST-запрос?
А в чём именно сложность заливки файла?
Отправляете обычный multipart запрос - и по идее должно работать сразу с "коробки".
Примеры запросов multipart на форуме есть - вроде в телеграмм также картинки через multipart заливаются.

Покажите код/шаблон как именно Вы пытаетесь отправлять - может быть чем-то поможем.
Если же Вы сами даже не пробовали - то возможно стоит пойти в рекламный раздел с просьбой составить запрос за денежку.
 

alexcalt

Активный пользователь
Регистрация
30.01.2020
Сообщения
114
Благодарностей
87
Баллы
28
А не проще ли самому руками через браузер залить файл и посмотреть какие данные отправляются?
 

stranger07

Client
Регистрация
29.03.2021
Сообщения
13
Благодарностей
2
Баллы
3
А в чём именно сложность заливки файла?
Я хочу понять, как происходит отправка файла с локального устройства через POST-запрос.

Для примера
Я создаю кубик POST-запрос со следующим содержимым:
URL: http://pr3.rapidgator.net/?r=upload/api&uuid=0la4fzVZUMUulOliVcleXY0Kn9nmJGAy&sid=6eo5bhrslh3lggb8kmu8lgk781
Кодировка: UTF-8
Таймаут: 3600
Тип данных: multipart
Загружать: только содержимое
Данные:
==========================================
Host: s133.rapidgator.net
Content-Length: 217019345
Content-Type: video/mp4
Content-Disposition: form-data; name="file"; filename="video.mp4"

C:\Uploads\video.mp4
==========================================
В ответ ничего не приходит.

В браузере пробовал загружать через созданную html-страницу, все загружается нормально.
Как правильно это сделать через POST-запрос.
 
Последнее редактирование:

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 760
Благодарностей
2 399
Баллы
113
Я хочу понять, как происходит отправка файла с локального устройства через POST-запрос.

Для примера
Я создаю кубик POST-запрос со следующим содержимым:
URL: http://pr3.rapidgator.net/?r=upload/api&uuid=0la4fzVZUMUulOliVcleXY0Kn9nmJGAy&sid=6eo5bhrslh3lggb8kmu8lgk781
Кодировка: UTF-8
Таймаут: 3600
Тип данных: multipart
Загружать: только содержимое
Данные:
==========================================
Host: s133.rapidgator.net
Content-Length: 217019345
Content-Type: video/mp4
Content-Disposition: form-data; name="file"; filename="video.mp4"

C:\Uploads\video.mp4
==========================================
В ответ ничего не приходит.

В браузере пробовал загружать через созданную html-страницу, все загружается нормально.
Как правильно это сделать через POST-запрос.
Пример запроса multipart/form-data.
Но, у меня домен вообще не открывается - может зависит от страны - пробовал ру, пробовал ua.

multipart/form-data:
string photo = @"C:\Users\User\Desktop\10431170301.jpg".Trim(); //Путь к файлу
string url = @"http://pr3.rapidgator.net/?r=upload/api&uuid=0la4fzVZUMUulOliVcleXY0Kn9nmJGAy&sid=6eo5bhrslh3lggb8kmu8lgk781";
string sBoundary = DateTime.Now.Ticks.ToString("x");
string contentType = "multipart/form-data";
string sPostMultiString = string.Empty;

// функция сбора данных
Func<string, string, string, string, string, string> multiFormDataFile = delegate(string key, string value, string fileName, string fileType, string boundary) {
  string output = string.Format("--{0}\r\n", boundary);
  output += string.Format(@"Content-Disposition: form-data; name=""{0}""; filename=""{1}""\r\n", key, fileName);
  output += string.Format("Content-Type: {0}\r\n\r\n", fileType);
  output += string.Format("{0}\r\n", value);
  return output;
};

var fileInfo = new System.IO.FileInfo(photo);
sPostMultiString += multiFormDataFile("file", fileInfo.FullName, fileInfo.Name, "image/jpeg", sBoundary);
var str = ZennoPoster.HttpPost(url, sPostMultiString, contentType, proxy:"", Cookies: "", AdditionalHeaders: new string[0]);
return str;
 
  • Спасибо
Реакции: stranger07

stranger07

Client
Регистрация
29.03.2021
Сообщения
13
Благодарностей
2
Баллы
3
Но, у меня домен вообще не открывается - может зависит от страны
Не открывается, потому что RapidGator заблокирован в России. Я использую VPN.

Это только через кубик C# выполняется? Через кубик POST-запрос возможно отправить файл с указанием необходимых параметров в поле "Данные"?
 

stranger07

Client
Регистрация
29.03.2021
Сообщения
13
Благодарностей
2
Баллы
3
Как можно выставить таймаут для POST запроса в C#:
C#:
string file = project.Variables["file_path"].Value; //Путь к файлу
string url = project.Variables["url_res"].Value;
string sBoundary = DateTime.Now.Ticks.ToString("x");
string mimeType = "";
string contentType = "multipart/form-data";
string sPostMultiString = string.Empty;

// функция сбора данных
Func<string, string, string, string, string, string> multiFormDataFile = delegate(string key, string value, string fileName, string fileType, string boundary) {
  string output = string.Format("--{0}\r\n", boundary);
  output += string.Format(@"Content-Disposition: form-data; name=""{0}""; filename=""{1}""\r\n", key, fileName);
  output += string.Format("Content-Type: {0}\r\n\r\n", fileType);
  output += string.Format("{0}\r\n", value);
  return output;
};

var fileInfo = new System.IO.FileInfo(file);
sPostMultiString += multiFormDataFile("file", fileInfo.FullName, fileInfo.Name, mimeType, sBoundary);
var str = ZennoPoster.HttpPost(url, sPostMultiString, contentType, proxy:"", Cookies: "", AdditionalHeaders: new string[0]);
return str;
Пробовал добавлять в 19 строке значение Timeout:3600
var str = ZennoPoster.HttpPost(url, sPostMultiString, contentType, proxy:"", Timeout:3600, Cookies: "", AdditionalHeaders: new string[0]);
файл не отправляется и приходит пустой ответ.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 606
Благодарностей
4 597
Баллы
113
Как можно выставить таймаут для POST запроса в C#:
C#:
string file = project.Variables["file_path"].Value; //Путь к файлу
string url = project.Variables["url_res"].Value;
string sBoundary = DateTime.Now.Ticks.ToString("x");
string mimeType = "";
string contentType = "multipart/form-data";
string sPostMultiString = string.Empty;

// функция сбора данных
Func<string, string, string, string, string, string> multiFormDataFile = delegate(string key, string value, string fileName, string fileType, string boundary) {
  string output = string.Format("--{0}\r\n", boundary);
  output += string.Format(@"Content-Disposition: form-data; name=""{0}""; filename=""{1}""\r\n", key, fileName);
  output += string.Format("Content-Type: {0}\r\n\r\n", fileType);
  output += string.Format("{0}\r\n", value);
  return output;
};

var fileInfo = new System.IO.FileInfo(file);
sPostMultiString += multiFormDataFile("file", fileInfo.FullName, fileInfo.Name, mimeType, sBoundary);
var str = ZennoPoster.HttpPost(url, sPostMultiString, contentType, proxy:"", Cookies: "", AdditionalHeaders: new string[0]);
return str;
Пробовал добавлять в 19 строке значение Timeout:3600
var str = ZennoPoster.HttpPost(url, sPostMultiString, contentType, proxy:"", Timeout:3600, Cookies: "", AdditionalHeaders: new string[0]);
файл не отправляется и приходит пустой ответ.
таймаут в миллисекундах. Множ на тысячу
 
  • Спасибо
Реакции: stranger07

stranger07

Client
Регистрация
29.03.2021
Сообщения
13
Благодарностей
2
Баллы
3
Подскажите, как передать значение Timeout в кубик C# из переменной проекта?
Пробовал так, появляется ошибка.
int Timeout = project.Variables["timeout_load_ms"].Value;
 
Последнее редактирование:

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 760
Благодарностей
2 399
Баллы
113
Подскажите, как передать значение Timeout в кубик C# из переменной проекта?
Пробовал так, появляется ошибка.
int Timeout = project.Variables["timeout_load_ms"].Value;
C#:
int Timeout = int.Parse(project.Variables["timeout_load_ms"].Value.Trim());
 
  • Спасибо
Реакции: Ddenirnl и stranger07

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)