Discussion de l'article "Utilisation de WinInet.dll pour l’échange de données entre terminaux via Internet" - page 4

 
OK, j'ai changé d'avis. Cet objet vaut la peine d'être essayé car ces crétins de MetaQuotes interdisent l'utilisation de la fonction WebRequest dans Strategy Tester.
 

a réussi à fonctionner sur mt5 x64 (le script metagrabber a fonctionné sans erreur)

changements de code dans la classe internetlib.mqh ::reqest

// créer un descripteur de demande
   string null = NULL;
   hRequest=HttpOpenRequestW(Connect,Verb,Object,Vers,nill,null,FLAG_KEEP_CONNECTION|FLAG_RELOAD|FLAG_PRAGMA_NOCACHE,0);
 

Mais je comprends que la requête provenant d'Internet ne peut pas être utilisée dans les produits Market, parce que les dlls y sont interdites.

et il n'y a pas d'autre moyen d'utiliser #import "wininet.dll" sans la dll elle-même ?

 
Yurij Izyumov:

Mais je comprends que la requête provenant d'Internet ne peut pas être utilisée dans les produits Market, parce que les dlls y sont interdites.

Et il n'y a pas d'autre moyen d'utiliser #import "wininet.dll" sans la dll elle-même ?

Il existe WebRequest depuis longtemps déjà, il est autorisé sur le marché.
 

Dans le code ci-dessous, j'ai remplacé la variable URL par path, car URL est une variable externe à la fonction ParseURL :

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

{

host=StringSubstr(path,7) ;

// supprimer

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 ;

}

 

Bonsoir à tous !

J'ai utilisé XAMPP pour installer php et apache. Cependant, je n'arrive pas à accéder à la page via GET depuis MQL5.

Voici l'erreur retournée :

Accès interdit !

Vous n'avez pas la permission d'accéder à l'objet demandé.

Il est soit protégé en lecture, soit illisible par le serveur.

Quelqu'un sait-il comment résoudre ce problème ?
 
Andrey Khatimlianskii:
WebRequest existe depuis longtemps déjà, il est autorisé sur le marché.

Il y a déjà des problèmes sur le marché (l'accès est fermé sur mcl5) et il ne fonctionne pas dans indicators.....

 
Vladimir Pastushak:

Il y a déjà des problèmes sur le marché (l'accès est fermé sur µl5) et il ne fonctionne pas dans les indicateurs...

WebRequest n'a jamais fonctionné dans les indicateurs. La raison de ce refus n'est pas claire, car le développeur peut décider, lorsqu'il écrit un programme, d'utiliser ou non WebRequest. Nous sommes au 21ème siècle WinInet.dll
 
Vladimir Pastushak:

Il y a déjà des problèmes dans le marché (sur mcl5 l'accès est fermé) et il ne fonctionne pas dans les indicateurs...

Quels sont les problèmes sur le marché ?

Et pourquoi l'accès sur µl5 ?


Vitaly Muzichenko:
WebRequest n'a jamais fonctionné dans les indicateurs. La raison de ce refus n'est pas claire, car le développeur peut décider, lorsqu'il écrit un programme, d'utiliser ou non WebRequest. Nous l'avons fait au 21e siècle avec WinInet.dll.

La raison en est très simple : les indicateurs travaillent dans le fil de l'interface, et toute pause suspend l'ensemble du graphique. Et personne ne peut garantir l'exécution instantanée d'une requête web.

Il est probablement possible de créer un mode spécial similaire à CopyRates, dans lequel le premier appel demande simplement des données, et les appels suivants les utilisent. Mais je ne pense pas que MQ va créer une telle béquille pour les web-request, nous devrons l'inventer nous-mêmes (en lançant un script ou quelque chose d'autre).

 
Andrey Khatimlianskii:

Quels sont les problèmes sur le marché ?

Et pourquoi accéder au µl5 ?


La raison est très simple - les indicateurs travaillent dans le fil d'interface, et toute pause suspend l'ensemble du graphique. Et personne ne peut garantir l'exécution instantanée d'une requête web.

Il est probablement possible de créer un mode spécial similaire à CopyRates, dans lequel le premier appel demande simplement des données, et les appels suivants les utilisent. Mais je ne pense pas que MQ va créer une telle béquille pour les web-request, nous devrons l'inventer nous-mêmes (via l'exécution d'un script ou autre).

Qu'il suspende le planning au moment de l'exécution, où est le problème ? Je répète :"le développeur lui-même peut décider, lorsqu'il écrit un programme, d'utiliser WebRequest ou non".