Discusión sobre el artículo "Usar WinInet.dll para el intercambio de datos entre terminales por internet" - página 4

 
OK, he cambiado de opinión. Este objeto vale la pena intentarlo porque estos imbéciles enfermos de MetaQuotes prohíben el uso de la función WebRequest en Strategy Tester.
 

logrado ejecutar en mt5 x64 (metagrabber script funcionó sin errores)

cambios de código en internetlib.mqh clase ::reqest

// crear un descriptor de petición
   string null = NULL;
   hRequest=HttpOpenRequestW(Connect,Verb,Object,Vers,nill,null,FLAG_KEEP_CONNECTION|FLAG_RELOAD|FLAG_PRAGMA_NOCACHE,0);
 

Pero entiendo que la solicitud de Internet no se puede utilizar en los productos del mercado, porque dlls están prohibidos allí.

y no hay otra forma de usar #importar "wininet.dll" sin la propia dll ?

 
Yurij Izyumov:

Pero entiendo que la solicitud de Internet no se puede utilizar en los productos del mercado, porque dlls están prohibidos allí.

¿y no hay otra forma de usar #import "wininet.dll" sin la propia dll ?

Ya existe WebRequest desde hace tiempo, está permitido en el Market.
 

En el código siguiente, he sustituido la variable URL por path, porque URL es una variable externa a la función ParseURL:

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

{

host=StringSubstr(ruta,7);

// eliminar

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

request=StringSubstr(host,i);

host=StringSubstr(host,0,i);

string file="";

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

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

{

archivo=StringSubstr(ruta,i+1);

break;

}

if(fichero!="") fichero=fichero;

}

 

¡Buenas tardes!

He utilizado XAMPP para instalar php y apache. Sin embargo, no puedo acceder a la página vía GET desde MQL5.

A continuación se muestra el error devuelto:

¡Acceso prohibido!

No tienes permiso para acceder al objeto solicitado.

Está protegido contra lectura o el servidor no puede leerlo.

¿Alguien sabe cómo resolver este problema?
 
Andrey Khatimlianskii:
Existe WebRequest desde hace mucho tiempo, está permitido en el mercado.

Ya hay problemas con él en el mercado (el acceso está cerrado en mcl5) y no funciona en los indicadores....

 
Vladimir Pastushak:

Ya en el mercado hay problemas con él (el acceso está cerrado en µl5) y no funciona en indicadores...

WebRequest nunca ha funcionado en indicadores. El motivo de la negativa no está claro, porque el desarrollador puede decidir al escribir un programa si utiliza WebRequest o no. Lo hacemos en el siglo 21 WinInet.dll
 
Vladimir Pastushak:

Ya en el mercado hay problemas con el (en mcl5 el acceso esta cerrado) y no funciona en indicadores...

¿Qué problemas en el mercado?

¿Y por qué el acceso en µl5?


Vitaly Muzichenko:
WebRequest nunca ha funcionado en indicadores. El motivo de la negativa no está claro, porque el desarrollador puede decidir al escribir un programa si utiliza WebRequest o no. Lo hacemos en el siglo 21 WinInet.dll

La razón es muy simple - los indicadores funcionan en el hilo de la interfaz, y cualquier pausa suspenderá todo el gráfico. Y nadie puede garantizar la ejecución instantánea de una web-request.

Probablemente, se puede hacer un modo especial similar a CopyRates, cuando la primera llamada simplemente solicita los datos, y las llamadas posteriores los utilizan. Pero no creo que MQ haga tal muletilla para web-request, tendremos que inventarla nosotros (lanzando un script o algo así).

 
Andrey Khatimlianskii:

¿Cuáles son los problemas del mercado?

¿Y por qué acceder en µl5?


La razón es muy sencilla: los indicadores funcionan en el hilo de la interfaz, y cualquier pausa suspenderá todo el gráfico. Y nadie puede garantizar la ejecución instantánea de una petición web.

Probablemente, se puede hacer un modo especial similar a CopyRates, cuando la primera llamada simplemente solicita datos, y las llamadas posteriores los utilizan. Pero no creo que MQ haga semejante muletilla para web-request, tendremos que ingeniárnosla nosotros (mediante la ejecución de un script u otra cosa).

Que suspenda la programación en tiempo de ejecución, ¿cuál es el problema? Repito:"el propio desarrollador puede decidir al escribir un programa si utiliza WebRequest o no".