Обсуждение статьи "Использование WinInet.dll для обмена данными между терминалами через Интернет" - страница 4

 
Ладно, я передумал. Этот объект стоит попробовать, потому что эти больные идиоты из MetaQuotes запрещают использовать функцию WebRequest в Strategy Tester.
 

удалось запустить на мт5 х64 (скрипт metagrabber отработал без ошибок)

изменения в коде в internetlib.mqh class ::reqest

// создаем дескриптор запроса
   string null = NULL;
   hRequest=HttpOpenRequestW(Connect,Verb,Object,Vers,nill,null,FLAG_KEEP_CONNECTION|FLAG_RELOAD|FLAG_PRAGMA_NOCACHE,0);
 

Но, я так понимаю запрос из интернет нельзя использовать в продуктах Маркета, т.к. там запрещены dll 

а по другому использовать #import "wininet.dll"   без самого dll - видимо никак  ?

 
Yurij Izyumov:

Но, я так понимаю запрос из интернет нельзя использовать в продуктах Маркета, т.к. там запрещены dll 

а по другому использовать #import "wininet.dll"   без самого dll - видимо никак  ?

Уже давно есть ВебРеквест, он в маркете разрешен.
 

В приведенном ниже коде я заменил переменную URL на path, поскольку URL является внешней переменной для функции ParseURL:

void ParseURL(string path,string &host,string &request,string &filename)

{

host=StringSubstr(path,7);

// удалить

int i=StringFind(host,"/");

request=StringSubstr(host,i);

host=StringSubstr(host,0,i);

string file="";

for(i=StringLen(path)-1; i>=0; i--)

if(StringSubstr(path,i,1)=="/")

{

file=StringSubstr(path,i+1);

break;

}

if(file!="") filename=file;

}

 

Добрый вечер!

Я использовал XAMPP для установки php и apache. Однако, я не могу получить доступ к странице через GET из MQL5.

Ниже приведена возвращаемая ошибка:

Доступ запрещен!

У вас нет разрешения на доступ к запрашиваемому объекту.

Он либо защищен от чтения, либо не читается сервером.

Кто-нибудь знает, как решить эту проблему?
 
Andrey Khatimlianskii:
Уже давно есть ВебРеквест, он в маркете разрешен.

Уже в маркете есть с ним проблемы (на мкл5 доступ закрыт) и не работает в индикаторах...

 
Vladimir Pastushak:

Уже в маркете есть с ним проблемы (на мкл5 доступ закрыт) и не работает в индикаторах...

ВебРеквест и не работал в индикаторах никогда. Причина отказа не понятна, ведь разработчик сам может решить при написании программы, использовать ВебРеквест или не использовать. Выкручиваемся в 21 веке WinInet.dll
 
Vladimir Pastushak:

Уже в маркете есть с ним проблемы (на мкл5 доступ закрыт) и не работает в индикаторах...

Какие в маркете проблемы?

И зачем доступ на мкл5?


Vitaly Muzichenko:
ВебРеквест и не работал в индикаторах никогда. Причина отказа не понятна, ведь разработчик сам может решить при написании программы, использовать ВебРеквест или не использовать. Выкручиваемся в 21 веке WinInet.dll

Причина очень простая - индикаторы работают в интерфейсном потоке, и любая пауза будет подвешивать весь чарт. А гарантировать моментальность выполнения веб-реквеста никто не может.

Наверное, можно сделать специальный режим по аналогии с КопиРейтс, когда первый вызов просто запрашивает данные, а последующие вызовы их используют. Но не думаю, что MQ будут делать такой костыль для веб-реквеста, придется придумывать самостоятельно (через запуск срипта или еще как-то).

 
Andrey Khatimlianskii:

Какие в маркете проблемы?

И зачем доступ на мкл5?


Причина очень простая - индикаторы работают в интерфейсном потоке, и любая пауза будет подвешивать весь чарт. А гарантировать моментальность выполнения веб-реквеста никто не может.

Наверное, можно сделать специальный режим по аналогии с КопиРейтс, когда первый вызов просто запрашивает данные, а последующие вызовы их используют. Но не думаю, что MQ будут делать такой костыль для веб-реквеста, придется придумывать самостоятельно (через запуск срипта или еще как-то).

Пусть на время выполнения подвешивает график, какие проблемы? Повторю: "разработчик сам может решить при написании программы, использовать ВебРеквест или не использовать