Вот обновленный код, где вместо фиксированного пути к файлу используется переменная filePath, а вместо фиксированного URL сайта — переменная serverUrl. Прокси был убран, как вы просили:
Обновленный код:
// Переменные для пути к файлу и URL сайта
string filePath = project.Variables["FilePath"].Value; // Указываете путь к файлу через переменную проекта
string serverUrl = project.Variables["ServerUrl"].Value; // Указываете URL сайта через переменную проекта
FileInfo fileInfo = new FileInfo(filePath);
string fileName = fileInfo.Name;
string fileType = System.Web.MimeMapping.GetMimeMapping(filePath);
// Генерация уникальной границы для multipart/form-data
Random rnd = new Random();
string boundary = "------" + rnd.Next(100000000, 999999999).ToString() + rnd.Next(100000, 999999).ToString();
// Чтение содержимого файла
string fileContent = File.ReadAllText(filePath, Encoding.UTF8);
// Формирование тела запроса
string data =
boundary + "\r\n" +
"Content-Disposition: form-data; name=\"create_file\"; filename=\"" + fileName + "\"\r\n" +
"Content-Type: " + fileType + "\r\n\r\n" +
fileContent + "\r\n" +
boundary + "\r\n" +
"Content-Disposition: form-data; name=\"path\"\r\n\r\n" +
"/your/path/here\r\n" +
boundary + "\r\n" +
"Content-Disposition: form-data; name=\"mime\"\r\n\r\n" +
"text/html\r\n" +
boundary + "\r\n" +
"Content-Disposition: form-data; name=\"charset\"\r\n\r\n" +
"utf-8\r\n" +
boundary + "\r\n" +
"Content-Disposition: form-data; name=\"hostname\"\r\n\r\n" +
"mostbetv.ru\r\n" +
boundary + "\r\n" +
"Content-Disposition: form-data; name=\"filterValue\"\r\n\r\n\r\n" +
boundary + "\r\n" +
"Content-Disposition: form-data; name=\"urlOffsets\"\r\n\r\n" +
"a:0:{}\r\n" +
boundary + "\r\n" +
"Content-Disposition: form-data; name=\"xsrf\"\r\n\r\n" +
"i9YN27rqdGdjT9LLt14JJVm5DUPr52a7\r\n" +
boundary + "\r\n" +
"Content-Disposition: form-data; name=\"action\"\r\n\r\n" +
"create.url\r\n" +
boundary + "--\r\n";
// Отправка POST-запроса через HTTP
string response = ZennoPoster.HTTP.Request(
InterfacesLibrary.Enums.Http.HttpMethod.POST,
url: serverUrl, // URL сайта берется из переменной
content: data,
contentPostingType: "multipart/form-data; boundary=" + boundary,
Encoding: "UTF-8",
respType: ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
Timeout: 30000,
UserAgent: project.Profile.UserAgent // Используется текущий UserAgent профиля
);
// Логирование результата (опционально)
project.SendInfoToLog("Response: " + response);
Что изменено:
- Переменные для пути к файлу и сайта:
filePathтеперь берется из переменной проекта:string filePath = project.Variables["FilePath"].Value;Вы можете задать переменнуюFilePathв интерфейсе Zennoposter.serverUrlберется из переменной проекта:string serverUrl = project.Variables["ServerUrl"].Value;Аналогично, задайте переменнуюServerUrlв проекте.
- Удален прокси: Прокси убран из вызова
ZennoPoster.HTTP.Request. - Путь к файлу и URL сайта задаются динамически: Теперь вы можете менять значения
FilePathиServerUrlбез необходимости редактировать сам скрипт.
Если у вас возникнут вопросы или нужно дополнить код, дайте знать! 😊