WebRequest и прокси

 

Вопрос к разработчикам, или к тем, кто разобрался с проблемой.

Попытался подключиться к известному bot API через TOR VPN, который может работать как socks proxy. Настроил в MT5 прокси-сервер, нажал кнопку проверки, тест прошёл. Терминал переподключился, всё работает. Но WebRequest() всё равно не работает. Долгая пауза и ошибка 1001.

WebRequest() не идёт через прокси из настроек терминала? Или проблема в другом?

Если так проблему не решить, какой есть вариант для доступа к bot API?

Через wininet.dll можно? Только что пришло в голову. Завтра буду смотреть его, но может кто подскажет.

 

Возможно в настройках, где разрешить WebRequest необходимо прописать адрес прокси. 

url

 

Через wininet.dll должно работать, там есть возможность работать через прокси. Но это не решает мою проблему. Я копаю с прицелом на маркет.

Надеюсь, ответят MQ или знатоки.

 
Edgar Akhmadeev:

Через wininet.dll должно работать, там есть возможность работать через прокси. Но это не решает мою проблему. Я копаю с прицелом на маркет.

Надеюсь, ответят MQ или знатоки.

Сам обертку пиши. От типа аутентификации зависит. Base  - без проблем. Kerberos без dll точно не получится, остальные тоже, но без уверенности - протоколы смотреть надо.
 
Vladimir Simakov:
Сам обертку пиши. От типа аутентификации зависит. Base  - без проблем. Kerberos без dll точно не получится, остальные тоже, но без уверенности - протоколы смотреть надо.

Обертку вокруг чего?

В качестве прокси на самом компе могу использовать из VPN вроде только TOR, а он поддерживает только Socks4. Этого достаточно, если бы WebRequest его использовал. Возможно, он и работает через прокси сервер из настроек MT, но только через HTTP-proxy?

Других VPN для windows, работающих на уровне системы, не нашёл. Все работают только в браузерах.

PS: В андроиде TOR (orbot) работает на уровне системы.
 
Edgar Akhmadeev:

Обертку вокруг чего?

В качестве прокси на самом компе могу использовать из VPN вроде только TOR, а он поддерживает только Socks4. Этого достаточно, если бы WebRequest его использовал. Возможно, он и работает через прокси сервер из настроек MT, но только через HTTP-proxy?

Других VPN для windows, работающих на уровне системы, не нашёл. Все работают только в браузерах.

Когда ты работаешь через прокси, ты не напрямую html запрос посылаешь, а через него, а перед этим ты должен пройти аутентификацию на нем. Посмотри как это браузер делает.
 
Edgar Akhmadeev:

Через wininet.dll должно работать, там есть возможность работать через прокси. Но это не решает мою проблему. Я копаю с прицелом на маркет.

Надеюсь, ответят MQ или знатоки.

Что-то подозреваю я бесполезные хлопоты. Маркет гоняет любой код в тестере, а из тестера доступ в интернет закрыт.

 
Alexey Viktorov:

Что-то подозреваю я бесполезные хлопоты. Маркет гоняет любой код в тестере, а из тестера доступ в интернет закрыт.

У меня библиотека, там это не мешает пройти проверку. А вот dll...

 
Vladimir Simakov:
Когда ты работаешь через прокси, ты не напрямую html запрос посылаешь, а через него, а перед этим ты должен пройти аутентификацию на нем. Посмотри как это браузер делает.

Браузер, когда настроен прокси, отправляет запрос на него. На сам запрос POST это не влияет. Я смотрел с отладочным прокси-сервером Charles.

Браузер у меня настроен на TOR, как к Socks4 прокси-серверу. POST запросы на bot API проходят замечательно. WebRequest не работает. Скорее всего, для него настройки прокси-сервера в MT не используются. Это я и хотел, чтобы подтвердили MQ. Возможно, пообещали бы реализовать, хотя это очень сложно. Ну или это вопрос политики. Хотя MQ - компания международная, и вопросы законности прокси и VPN должны решать сами пользователи. Kaspersky же предлагает VPN.

Иначе единственный выход - dll, и как быть с маркетом. Я разрабатываю библиотеку для работы с Push на мобильные устройства, реализована отправка на Pushover, хочу сделать отправку на популярные мессенджеры (в WhatsApp нет API, но кроме как у известного есть ещё у Viber), и несколько других систем. Проблема с прокси касается только одного популярного мессенджера, а я его хотел реализовать вторым после Pushover, поскольку он самый популярный не считая WhatsApp, который отпадает.

 

Идеи такие:

1. Проверить Socket-функции (может быть они прокси подхватывают, хотя с ними мороки больше, но вряд ли получится - в документации по терминалу, что прокси используется для доступа к серверам MT).

2. Поднимать свой публичный прокси, коннектится к нему из WebRequest.

 
Stanislav Korotky:

Идеи такие:

1. Проверить Socket-функции (может быть они прокси подхватывают, хотя с ними мороки больше, но вряд ли получится - в документации по терминалу, что прокси используется для доступа к серверам MT).

2. Поднимать свой публичный прокси, коннектится к нему из WebRequest.

1. К сокетам из-за мороки вернусь потом.

2. Рассматривал. Для аудитории библиотеки в маркете неприемлемо. Для себя - нормальное решение, но в данном случае проще использовать wininet.dll, и это работает.