[SPOILER= Requests]
[SPOILER= NetHttp]
NetHttp
Класс для выполнения HTTP запросов (GET, POST, PUT, DELETE) с поддержкой прокси, кастомных заголовков и автоматического логирования. Предоставляет удобный интерфейс для работы с веб-сервисами и API.
Конструктор
NetHttp(IZennoPosterProjectModel project, bool log = false)
Создает новый экземпляр класса NetHttp.
Параметры:
project- экземпляр проекта ZennoPosterlog- включить логирование запросов (по умолчанию false)
Пример: [CODE=csharp] var httpClient = new NetHttp(project, true); //создать клиент с логированием [/CODE]
Методы
GET(string url, string proxyString = "", Dictionary<string, string> headers = null, bool parse = false, int deadline = 15, bool throwOnFail = false)
Возвращает: string - ответ сервера
Выполняет GET запрос к указанному URL.
Параметры:
url- адрес для запросаproxyString- строка прокси (формат: “ip:port” или “user:pass@ip:port”)headers- дополнительные HTTP заголовкиparse- автоматически парсить JSON ответdeadline- таймаут запроса в секундахthrowOnFail- выбрасывать исключение при ошибке
Пример: [CODE=csharp] var headers = new Dictionary<string, string> { {“Authorization”, “Bearer token123”} }; string response = httpClient.GET(“https://api.example.com/data”, ”+”, headers, true); //получить данные с авторизацией и парсингом JSON project.SendInfoToLog(response); [/CODE]
POST(string url, string body, string proxyString = "", Dictionary<string, string> headers = null, bool parse = false, int deadline = 15, string callerName = "", bool throwOnFail = false)
Возвращает: string - ответ сервера
Выполняет POST запрос с передачей данных в теле запроса.
Параметры:
url- адрес для запросаbody- тело запроса (обычно JSON)proxyString- строка проксиheaders- дополнительные HTTP заголовкиparse- автоматически парсить JSON ответdeadline- таймаут запроса в секундахcallerName- имя вызывающего метода для логированияthrowOnFail- выбрасывать исключение при ошибке
Пример: [CODE=csharp] string jsonData = ”{“name”:“test”,“value”:123}”; var headers = new Dictionary<string, string> { {“Content-Type”, “application/json”} }; string response = httpClient.POST(“https://api.example.com/create”, jsonData, ”+”, headers); //отправить JSON данные на сервер project.SendInfoToLog(“Ответ: ” + response); [/CODE]
PUT(string url, string body = "", string proxyString = "", Dictionary<string, string> headers = null, bool parse = false, string callerName = "")
Возвращает: string - ответ сервера
Выполняет PUT запрос для обновления данных на сервере.
Параметры:
url- адрес для запросаbody- тело запроса (необязательно)proxyString- строка проксиheaders- дополнительные HTTP заголовкиparse- автоматически парсить JSON ответcallerName- имя вызывающего метода для логирования
Пример: [CODE=csharp] string updateData = ”{“id”:1,“status”:“active”}”; string response = httpClient.PUT(“https://api.example.com/update/1”, updateData, ”+”); //обновить запись с id=1 project.SendInfoToLog(“Обновлено: ” + response); [/CODE]
DELETE(string url, string proxyString = "", Dictionary<string, string> headers = null, string callerName = "")
Возвращает: string - ответ сервера
Выполняет DELETE запрос для удаления данных на сервере.
Параметры:
url- адрес для запросаproxyString- строка проксиheaders- дополнительные HTTP заголовкиcallerName- имя вызывающего метода для логирования
Пример: [CODE=csharp] string response = httpClient.DELETE(“https://api.example.com/delete/1”, ”+”); //удалить запись с id=1 project.SendInfoToLog(“Удалено: ” + response); [/CODE]
CheckProxy(string proxyString = null)
Возвращает: bool - true если прокси работает корректно
Проверяет работоспособность прокси, сравнивая IP адреса с прокси и без него.
Параметры:
proxyString- строка прокси для проверки (если null, берется из базы данных)
Пример: [CODE=csharp] bool isProxyWorking = httpClient.CheckProxy(“192.168.1.1:8080”); if (isProxyWorking) { project.SendInfoToLog(“Прокси работает корректно”); } else { project.SendWarningToLog(“Прокси не работает”); } [/CODE]
ProxySet(Instance instance, string proxyString = null)
Возвращает: bool - true если прокси успешно установлен
Проверяет и устанавливает прокси для экземпляра браузера.
Параметры:
instance- экземпляр браузера для установки проксиproxyString- строка прокси (если null, берется из базы данных)
Пример: [CODE=csharp] bool proxySet = httpClient.ProxySet(instance, “user:pass@192.168.1.1:8080”); if (proxySet) { project.SendInfoToLog(“Прокси установлен для браузера”); } else { project.SendErrorToLog(“Не удалось установить прокси”); } [/CODE] [/SPOILER] [SPOILER= Requests]
Requests
Расширения для выполнения HTTP-запросов в ZennoPoster с поддержкой прокси, логирования и автоматической обработки JSON. Предоставляет удобные методы GET и POST с настраиваемыми параметрами и обработкой ошибок.
Методы
GET
Возвращает: string - ответ сервера или пустую строку при ошибке
Выполняет HTTP GET-запрос к указанному URL с возможностью настройки прокси, заголовков и таймаута.
Параметры:
url(string) - URL для запросаproxy(string, необязательный) - прокси в формате “ip:port” или “login:pass@ip:port”, символ ”+” для автоматического получения из переменныхheaders(string[], необязательный) - массив заголовков HTTPlog(bool, необязательный) - включить логирование запроса и ответаparseJson(bool, необязательный) - автоматически парсить JSON-ответdeadline(int, необязательный) - таймаут в секундах (по умолчанию 15)throwOnFail(bool, необязательный) - выбрасывать исключение при ошибке
Пример использования: [CODE=csharp] //простой GET-запрос string response = project.GET(“https://api.example.com/data”);
//запрос с прокси и логированием string response = project.GET(“https://api.example.com/data”, proxy: “192.168.1.1:8080”, log: true);
//запрос с заголовками и JSON-парсингом string[] headers = {“Authorization: Bearer token123”}; string response = project.GET(“https://api.example.com/user”, headers: headers, parseJson: true);
//запрос с автоматическим прокси string response = project.GET(“https://api.example.com/data”, proxy: ”+”, deadline: 30); [/CODE]
POST
Возвращает: string - ответ сервера или пустую строку при ошибке
Выполняет HTTP POST-запрос к указанному URL с телом запроса и настраиваемыми параметрами.
Параметры:
url(string) - URL для запросаbody(string) - тело POST-запросаproxy(string, необязательный) - прокси в формате “ip:port” или “login:pass@ip:port”, символ ”+” для автоматического полученияheaders(string[], необязательный) - массив заголовков HTTPlog(bool, необязательный) - включить логирование запроса и ответаparseJson(bool, необязательный) - автоматически парсить JSON-ответdeadline(int, необязательный) - таймаут в секундах (по умолчанию 15)throwOnFail(bool, необязательный) - выбрасывать исключение при ошибке
Пример использования: [CODE=csharp] //простой POST-запрос с JSON string jsonData = ”{“name”:“test”,“value”:123}”; string response = project.POST(“https://api.example.com/create”, jsonData);
//POST с прокси и логированием string response = project.POST(“https://api.example.com/update”, body: jsonData, proxy: “user:pass@192.168.1.1:8080”, log: true);
//POST с заголовками авторизации string[] headers = {“Authorization: Bearer token123”, “Content-Type: application/json”}; string response = project.POST(“https://api.example.com/secure”, body: jsonData, headers: headers, parseJson: true); [/CODE]
SetProxy
Возвращает: void
Устанавливает прокси для экземпляра браузера с проверкой корректности работы. Проверяет изменение IP-адреса для подтверждения работы прокси.
Параметры:
instance(Instance) - экземпляр браузера для настройки проксиproxyString(string, необязательный) - строка прокси, если не указана - берется автоматически
Пример использования: [CODE=csharp] //установка прокси для текущего экземпляра project.SetProxy(instance);
//установка конкретного прокси project.SetProxy(instance, “192.168.1.1:8080”);
//установка прокси с авторизацией project.SetProxy(instance, “user:pass@192.168.1.1:8080”); [/CODE][/SPOILER] [/SPOILER]