Хорошая реализация, но есть проблема при обработке с помощью прокси. Возвращает ошибку. Немного посмотрел код, ошибка появляется в момент парсинга token, приходит пустое значение.
А пустое значение там, потому что ответ приходит в таком виде
<!doctype html><html prefix="og: http://ogp.me/ns#">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title data-react-helmet="true">Ой!</title><meta data-react-helmet="true" property="og:title" content="Яндекс">
<meta data-react-helmet="true" property="og:description" content="Найдётся всё"></div>......
А должен приходить примерно в таком
<!DOCTYPE html><html lang="ru-RU" class="desktop adaptive">
<head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="csrf-token" content="e72a2d6e3a0b9b226bc7cc1c56836d8f427aa54b:1653468912"/>
<link rel="icon" href="/favicon.ico" sizes="any"/>
<link rel="shortcut icon" href="/favicon.png" sizes="16x16"/>.....
Чтобы можно было спарсить вот этот токен <meta name="csrf-token" content="e72a2d6e3a0b9b226bc7cc1c56836d8f427aa54b:1653468912"/>.
Я глубоко не искал, но похоже есть проблема с преобразованием вида прокси из стандартного для zenno в вид для xnet. Прокси рабочие, на обычном get-запросе отрабатывают правильно. Ну и странно конечно, что приходят символы вида
content="Яндекс"> .
<meta data-react-helmet="true" property="og:description" content="Найдётся всё">.
Скорее всего просто кодировка слетела и надо добавить что-то типа request.CharacterSet = Encoding.GetEncoding("utf-8");
Но без прокси отрабатывает нормально.
Возможно в директивах using есть какая-то ошибка, связанная с
/// <summary>
/// Класс для прокси
/// </summary>
public class Proxys
Делал себе подобный проект, только на Leaf.xNet, там тоже работает хорошо, но я сразу указывал формат прокси в виде ip:port:login:password.
Вдруг кому-то пригодится, выше видел, что писали про эту ошибку.
p.s. Сменил кодировку ради интереса, действительно выдает - Нам очень жаль, но запросы с вашего устройства похожи на автоматические. Но через обычный гет-запрос из зеннопостера опять же работает. Странно это всё
И через Leaf.Xnet тоже работает.
p.p.s. Вобщем ради интереса еще поковырял этот xNet, видимо да, кривая библиотека, на форумах тоже про неё много нехорошего пишут, пользуйтесь Leaf.Xnet кому нужно. Самый простой способ проверить кривизну, это запустить код на 2ip ru. Там будет понятно работает ли прокси или нет. Вобщем вопрос можно закрывать
Кому нужно просто вместо xNet добавьте в Externals и в ссылки из GAC Leaf.xNet. Удалите везде xNet, чтобы не было конфликтов. Ну и немного код подправьте, например вместо request.Proxy = ProxyClient.Parse(ProxyType.Http..., нужно прописать request.Proxy = ProxyClient.Parse(ProxyType.HTTP.
Ну и еще по мелочи, смотря что вам нужно, например тот же трим и парсинг token можно и стандартными экшенами делать, чтобы потом не искать где ошибка в коде. Да вобщем то и get и post запрос тоже можно стандартными экшенами сделать ))