Diskussion zum Artikel "Datenaustausch zwischen Terminals via Internet mit Hilfe von WinInet.dll" - Seite 4

 
OK, ich habe meine Meinung geändert. Dieses Objekt ist einen Versuch wert, denn diese kranken Idioten von MetaQuotes verbieten die Verwendung der WebRequest-Funktion in Strategy Tester.
 

läuft auf mt5 x64 (Metagrabber-Skript funktioniert ohne Fehler)

Code-Änderungen in internetlib.mqh Klasse ::reqest

// Erstellen eines Anforderungsdeskriptors
   string null = NULL;
   hRequest=HttpOpenRequestW(Connect,Verb,Object,Vers,nill,null,FLAG_KEEP_CONNECTION|FLAG_RELOAD|FLAG_PRAGMA_NOCACHE,0);
 

Aber ich verstehe, dass die Anfrage aus dem Internet nicht in Market-Produkten verwendet werden kann, weil dlls dort verboten sind.

und es gibt keine andere Möglichkeit, #import "wininet.dll" ohne die dll selbst zu verwenden?

 
Yurij Izyumov:

Aber ich verstehe, dass die Anfrage aus dem Internet nicht in Market-Produkten verwendet werden kann, weil dlls dort verboten sind.

und es gibt keine andere Möglichkeit, #import "wininet.dll" ohne die dll selbst zu verwenden?

WebRequest gibt es schon seit langem, es ist im Market erlaubt.
 

Im folgenden Code habe ich die Variable URL durch path ersetzt, da URL eine externe Variable für die Funktion ParseURL ist:

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

{

host=StringSubstr(pfad,7);

// entfernen

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

anfrage=StringSubstr(host,i);

host=StringSubstr(host,0,i);

string file="";

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

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

{

file=StringSubstr(pfad,i+1);

break;

}

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

}

 

Guten Abend!

Ich habe XAMPP verwendet, um php und apache zu installieren. Allerdings kann ich die Seite nicht über GET von MQL5 aus aufrufen.

Unten ist der Fehler zurückgegeben:

Zugriff untersagt!

Sie haben keine Berechtigung zum Zugriff auf das angeforderte Objekt.

Es ist entweder schreibgeschützt oder kann vom Server nicht gelesen werden.

Weiß jemand, wie man dieses Problem lösen kann?
 
Andrey Khatimlianskii:
WebRequest gibt es schon seit langem, es ist auf dem Markt zugelassen.

Es gibt bereits Probleme mit ihm auf dem Markt (Zugang ist auf mcl5 geschlossen) und es funktioniert nicht in Indikatoren....

 
Vladimir Pastushak:

Bereits auf dem Markt gibt es Probleme mit ihm (Zugang ist auf µl5 geschlossen) und es funktioniert nicht in Indikatoren...

WebRequest hat in Indikatoren nie funktioniert. Der Grund für die Ablehnung ist nicht klar, denn der Entwickler kann beim Schreiben eines Programms entscheiden, ob er WebRequest verwenden will oder nicht. Wir machen es im 21. Jahrhundert WinInet.dll
 
Vladimir Pastushak:

Bereits auf dem Markt gibt es Probleme damit (auf mcl5 ist der Zugang geschlossen) und es funktioniert nicht in Indikatoren...

Was sind die Probleme auf dem Markt?

Und warum der Zugang auf µl5?


Vitaly Muzichenko:
WebRequest hat in Indikatoren nie funktioniert. Der Grund für die Ablehnung ist nicht klar, denn der Entwickler kann beim Schreiben eines Programms entscheiden, ob er WebRequest verwenden will oder nicht. Wir machen es im 21. Jahrhundert WinInet.dll aus

Der Grund ist ganz einfach: Indikatoren arbeiten im Schnittstellen-Thread, und jede Pause setzt das gesamte Diagramm außer Kraft. Und niemand kann die sofortige Ausführung eines Web-Requests garantieren.

Wahrscheinlich kann man einen speziellen Modus ähnlich wie bei CopyRates einrichten, bei dem der erste Aufruf einfach Daten anfordert und die nachfolgenden Aufrufe diese verwenden. Aber ich glaube nicht, dass MQ eine solche Krücke für Web-Anfragen bereitstellen wird, wir müssen sie selbst erfinden (indem wir ein Skript oder etwas anderes starten).

 
Andrey Khatimlianskii:

Was sind die Probleme auf dem Markt?

Und warum der Zugang auf µl5?


Der Grund ist ganz einfach: Die Indikatoren arbeiten im Schnittstellen-Thread, und jede Pause unterbricht das gesamte Diagramm. Und niemand kann die sofortige Ausführung einer Web-Anfrage garantieren.

Wahrscheinlich kann man einen speziellen Modus ähnlich wie bei CopyRates einrichten, bei dem der erste Aufruf einfach Daten anfordert und die nachfolgenden Aufrufe diese verwenden. Aber ich glaube nicht, dass MQ eine solche Krücke für Web-Requests bereitstellen wird, das müssen wir uns schon selbst ausdenken (über ein Skript oder etwas anderes).

Lassen Sie es den Zeitplan zur Laufzeit aussetzen, wo ist das Problem? Ich wiederhole:"Der Entwickler kann beim Schreiben eines Programmsselbst entscheiden , ob er WebRequest verwenden will oder nicht".