Discussão do artigo "Utilizando WinInet.dll para a troca de dados entre plataformas via internet" - página 4

 
OK, mudei de ideia. Vale a pena tentar esse objeto porque esses idiotas doentes da MetaQuotes proíbem o uso da função WebRequest no Strategy Tester.
 

conseguiu executar no mt5 x64 (o script metagrabber funcionou sem erros)

alterações de código na classe internetlib.mqh ::reqest

// criar um descritor de solicitação
   string null = NULL;
   hRequest=HttpOpenRequestW(Connect,Verb,Object,Vers,nill,null,FLAG_KEEP_CONNECTION|FLAG_RELOAD|FLAG_PRAGMA_NOCACHE,0);
 

Mas eu entendo que a solicitação da Internet não pode ser usada em produtos do Market, porque as dlls são proibidas lá.

e não há outra maneira de usar #import "wininet.dll" sem a própria dll?

 
Yurij Izyumov:

Mas eu entendo que a solicitação da Internet não pode ser usada em produtos do Market, porque as dlls são proibidas lá.

E não há outra maneira de usar #import "wininet.dll" sem a própria dll?

Já existe o WebRequest há muito tempo e ele é permitido no Market.
 

No código baixo, eu troquei a variável URL por path, pois URL é variável externa a função ParseURL : 

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

  {

   host=StringSubstr(path,7);

   // remove

   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;

  }

 

Boa noite!!

Utilizei o XAMPP para instalar o php e apache. Porém, não estou conseguindo acessar a página via GET pelo MQL5.

Segue abaixo o erro retornado:

Access forbidden!

You don't have permission to access the requested object.

It is either read-protected or not readable by the server.

Alguém sabe como resolver este problema?
 
Andrey Khatimlianskii:
Já existe o WebRequest há muito tempo, ele é permitido no mercado.

Já existem problemas com ele no mercado (o acesso está fechado no mcl5) e ele não funciona nos indicadores....

 
Vladimir Pastushak:

No mercado, já existem problemas com ele (o acesso está fechado no µl5) e ele não funciona em indicadores...

O WebRequest nunca funcionou em indicadores. O motivo da recusa não está claro, pois o desenvolvedor pode decidir, ao escrever um programa, se quer usar o WebRequest ou não. Conseguimos chegar ao século XXI com o WinInet.dll
 
Vladimir Pastushak:

Já no mercado há problemas com ele (no mcl5 o acesso está fechado) e ele não funciona nos indicadores...

Quais são os problemas no mercado?

E por que o acesso no µl5?


Vitaly Muzichenko:
O WebRequest nunca funcionou em indicadores. O motivo da recusa não está claro, pois o desenvolvedor pode decidir, ao escrever um programa, se quer usar o WebRequest ou não. Conseguimos isso no século 21 com o WinInet.dll

O motivo é muito simples: os indicadores funcionam no thread da interface, e qualquer pausa suspenderá todo o gráfico. E ninguém pode garantir a execução instantânea de uma solicitação da Web.

Provavelmente, você pode criar um modo especial semelhante ao CopyRates, quando a primeira chamada simplesmente solicita dados e as chamadas subsequentes os utilizam. Mas não acho que o MQ criará essa muleta para a solicitação da Web, teremos que inventá-la nós mesmos (lançando um script ou outra coisa).

 
Andrey Khatimlianskii:

Quais são os problemas no mercado?

E por que acessar no µl5?


O motivo é muito simples: os indicadores funcionam no thread da interface, e qualquer pausa suspende todo o gráfico. E ninguém pode garantir a execução instantânea de uma solicitação da Web.

Provavelmente, você pode criar um modo especial semelhante ao CopyRates, quando a primeira chamada simplesmente solicita dados e as chamadas subsequentes os utilizam. Mas não acho que o MQ criará essa muleta para a solicitação da Web, teremos de criá-la nós mesmos (executando um script ou outra coisa).

Deixe que ele suspenda o agendamento em tempo de execução, qual é o problema? Repito:"o próprio desenvolvedor pode decidir, ao escrever um programa, se quer usar o WebRequest ou não".