Функция WebRequest возвращает несуществующий HTTP код - страница 2

 
Janis Ozols:

Если значение параметра url вставить в адресную строку браузера Google Chrome на этом же компьютере (Windows 7, 32bit), то мы получаем ответ сервера с кодом 401 и текстом {"ok":false,"error_code":401,"description":"Unauthorized"}. Именно этот результат я ожидал получить скриптом. Но почему-то получил ошибку

Попробуйте это на Win7.

 
Janis Ozols:

А где вы нашли описание ошибки 1001? Я не смог обнаружить её в документации.

В сети, давно, ссылок нет.

Janis Ozols:

Если бы это была блокировка, то, наверное, запрос через браузер тоже бы не прошёл.

Блокировка была в РФ, в других странах нет. Это просто одна из причин. Их может быть много. Например, таймаут. Но Ваших 30 сек должно хватить. У меня выставлено 7 сек (5 не хватало).

 
Sergey Zhilinskiy:

Попробуйте это на Win7.

Сделал всё чётко по инструкции, в т.ч. создал новые разделы и параметры в реестре. К сожалению, это не помогло.

Edgar Akhmadeev:

Это просто одна из причин. Их может быть много. Например, таймаут. Но Ваших 30 сек должно хватить. У меня выставлено 7 сек (5 не хватало).

Я время не замерял, но по ощущению это происходит практически моментально после запуска. Если делать через WinAPI, то функции InternetAttemptConnect и InternetOpenW отрабатывают нормально, а InternetOpenUrlW завершается с ошибкой 12007 (ERROR_INTERNET_NAME_NOT_RESOLVED). А на случай таймаута там вроде бы как другой код ошибки предусмотрен - 12002 (ERROR_INTERNET_TIMEOUT).

 
Janis Ozols:

К сожалению, я не могу воспользоваться этой рекомендацией вот по этой причине. На другой машине, где установлен Windows Server 2012 R2 x64 и МТ5 build 2815, всё работает нормально.

Уже догадываюсь, какая рекомендация сейчас последует ;)
Но я пишу скрипт не только для себя и не могу предположить, где другие люди будут его запускать.

Видимо, есть что-такое на сервере api.telegram.org, что он не принимает запросы, сделанные через WinAPI из Windows 7 x32. А браузер делает эти запросы как-то по другому. Потому что на другие хосты, в том числе mql5.com, запросы из того же скрипта отправляются и обрабатываются хорошо.

Меняйте операционку и обновляйтесь.

В ближайшее время мы отключим поддержку 32 битных терминалов МТ5 в маркете.

 
Janis Ozols:

Сделал всё чётко по инструкции, в т.ч. создал новые разделы и параметры в реестре. К сожалению, это не помогло.

Думаю TLS 1.2 не включилась по какой то причине. Проверьте приложением (прикрепил архив).

У меня, к сожалению, не на чем проверить.

Файлы:
SendGet.zip  980 kb
 
Sergey Zhilinskiy:

Думаю TLS 1.2 не включилась по какой то причине. Проверьте приложением (прикрепил архив).

У меня, к сожалению, не на чем проверить.


Вот такой результат я получил:


 

Что я собственно и подозревал. Воюйте с TLS...

На другой ОС работает запрос?

 
Sergey Zhilinskiy:

Что я собственно и подозревал. Воюйте с TLS...

Буду разбираться. Большое спасибо за помощь!

Sergey Zhilinskiy:

На другой ОС работает запрос?

Да, на другой ОС всё работает.