Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich glaube, ich komme mit der Genehmigung weiter.
Fragen Sie also Roman, wie man die Autorisierung auf dem IBM-Server mitWebRequest durchführt, das ist die Schlüsselfrage!
Roman, danke für den Kommentar! Ich denke, wir werden auch mit der Genehmigung zurechtkommen.
Nun zu ein paar Parametern. In der Hilfe zu WebRequest heißt es
[in] Abfragekopfzeilen des Typs "Schlüssel: Wert", getrennt durch einen Zeilenumbruch "\r\n".
Die Variable headers selbst ist vom Typ string
Was meinen Sie damit, dass die Zeichenfolge ein Zeilenumbruchzeichen enthält, d. h. das Ende der Zeichenfolge?
Sie haben sicher recht, und der Screenshot von postman, wo das Ausgabepaar in den http-Request-Header geschrieben wird, ist anders erklärt )
ich vermute, dass wir immer noch über dieselbe Sache sprechen, nur mit anderen Worten )
Ich weiß nicht, wie schlecht Postman geschrieben ist, was es ist, und was es mit Ihrem Problem zu tun hat...
aber 90% werden durch Lesen gelöst, und es liegt an der Person, die das Problem löst, es zu lesen.
Es ist eine ziemlich typische Sache - es gibt Dokumentation von Rest-API-Dienst (haben Sie es übrigens gelesen??), Sie haben Glück, dass sie ein Beispiel mit curl und keine Notwendigkeit, andere Sprachen zu parsen gab... und Sie müssen WebRequest MT verwenden.
Curl startet, das Protokoll wird auf dem Bildschirm angezeigt - welche Header von Parametern generiert und gesendet werden, was zurückkommt, wie es verstanden wird und wo es abgelegt wird.
Und es ist direkt sichtbar, was an WebRequest gesendet werden soll
---
Ich weiß nicht, wie schlecht der Postbote geschrieben ist, was er ist oder was er mit Ihrem Problem zu tun hat...
aber 90% werden durch Lesen gelöst, und es liegt an der Person, die das Problem löst, es zu lesen.
Es ist eine ziemlich typische Sache - es gibt Dokumentation von Rest-API-Dienst (haben Sie es übrigens gelesen??), Sie haben Glück, dass sie ein Beispiel mit curl und keine Notwendigkeit, andere Sprachen zu parsen gab... und Sie müssen WebRequest MT verwenden.
Curl startet, das Protokoll wird auf dem Bildschirm angezeigt - welche Header von Parametern generiert und gesendet werden, was zurückkommt, wie es verstanden wird und wo es abgelegt wird.
Und es ist direkt sichtbar, was an WebRequest gesendet werden soll
---
lesen, lesen ) Wir finden es heraus und machen Fortschritte.
Ich glaube, ich komme mit der Genehmigung weiter.
Roman, danke für deinen Kommentar! Ich denke, wir werden auch mit der Genehmigung zurechtkommen.
Nun zu ein paar Parametern. In der Hilfe zu WebRequest heißt es
[in] Abfrageüberschriften des Typs "Schlüssel: Wert", getrennt durch einen Zeilenumbruch "\r\n".
Die Variable headers selbst ist vom Typ string
Was meinen Sie damit, dass die Zeichenfolge ein Zeilenumbruchzeichen enthält?
Die Kopfzeile kann mehr als eine Schlüssel/Wert-Zeichenkette enthalten, daher wird ein Zeilenumbruch verwendet.
Die doppelte Silbentrennung"\r\n\r\n" muss am Ende der Kopfzeile stehen.
So versteht der Server das Ende des Headers, was ein http-Standard ist.
Nach der doppelten Silbentrennung folgt der Text der Anfrage oder Antwort.
Die FunktionWebRequest trennt diese Blöcke der Einfachheit halber.
Für Header ein eigener Parameter, für den Body ein eigener.
Aber die Syntax des Schreibens der Anfrage, erfordert die Einhaltung der Norm http.
von dieser Websitehttps://example-files.online-convert.com/audio/wav/example.wav
lädt diese Datei "example.wav" herunter
und nach dem Herunterladen spielt esPlaySound("\\Files\\\example.wav") ab;
-------------------------------------------------
Aber die Bedeutung dieser Funktion ist nicht klar. Das glaube ich nicht!
Nun, meine Herren, lassen Sie uns weitermachen, ja?
Zunächst einmal sollten wir den Code der Anfrage selbst so weit wie möglich vereinfachen. Lassen wir nur eine Kopfzeile übrig - die Genehmigung selbst, die immer noch funktioniert! In diesem Fall liefert uns der IBM-Server ohne zusätzliche Header einen Stream im .ogg-Audioformat. Zum Teufel damit, denken wir, lasst uns erst einmal etwas auf die Beine stellen. Lassen Sie uns aufgeben vergebliche Versuche zu formatieren Stream zu wav mit zusätzlichen Header und befassen sich mit .ogg (übrigens, ähnlichen Fehler mit WebRequest Syntaxhttps://www.mql5.com/en/forum/310891#comment_16643324 )
Das Skript wird beim Server angemeldet und bleibt hängen. Ok, lassen wir es im Debug-Modus laufen oder so...
sehen, nicht wahr? )
Wir lassen das Skript aus dem Graphen fallen, aber aus irgendeinem Grund stoppt es die Ausführung nicht vollständig, sondern unterbricht nur die synchrone WebRequest und fährt fort, was im Allgemeinen zu unserem Vorteil ist.
Weiter geht's. In char result[] haben wir jetzt einen .ogg-Stream und schreiben ihn in eine Datei.
Die Datei erhält auch 6Kb (auch, weil die Abfrage von curl oder postman mit denselben Parametern eine 6Kb .ogg-Datei zurückgibt, die korrekt abgespielt wird! Gut zu hören das Wort Test ))))
Jetzt schreiben wir alle char-Arrays in eine Datei. Geben Sie speziell an, dass wir nicht die Array-Größe messen, sondernWHOLE_ARRAY nehmen sollen.
So sieht es jetzt aus:
Das einzige Problem ist, dass die Curl-Datei problemlos abgespielt wird, unsere Datei aber aus irgendeinem Grund nicht.
Werfen wir einen Blick in beide Dateien
Unten mit curl heruntergeladene Datei, oben aus dem WebRequest-Stream in die Binärdatei gefüllt
Sehen Sie diese Blobs 00000089, 00000004 in der oberen Datei testmql5.ogg? ))) Ist es ein Bonusprogramm oder was? ))) Woher kommt das alles? ))))))))
Zusammenfassend
1. Die Syntax ist mir immer noch ein Rätsel. Es ist nur gelungen, sich beim Server zu authentifizieren, Versuche, andere Header hinzuzufügen, sind bisher fehlgeschlagen
2. Ich frage mich, wenn WebRequest Stream mit Sprinkles empfängt, oder ich schreibe es in eine Datei falsch, aber das .ogg-Dateiformat aus char Array Ergebnis mit WebRequest-Methode erhalten ist falsch.
Faule Tomaten willkommen!
von dieser Websitehttps://example-files.online-convert.com/audio/wav/example.wav
lädt diese Datei "example.wav" herunter
und nach dem Herunterladen spielt esPlaySound("\\Files\\\example.wav") ab;
-------------------------------------------------
Aber die Bedeutung dieser Funktion ist nicht klar. Ich glaube nicht, dass das Sinn macht!
Alexsandr,
Das ist großartig, danke! Aber die wav-Datei sollte von der TTS-Engine (TextToSpeech) erzeugt werden
Alexsandr,
Alles großartig, danke! Aber die wav-Datei sollte von einer TTS-Engine (TextToSpeech) erzeugt werden.
Ich habe es verstanden - es sollte funktionieren.
Hier ist etwas Ähnlicheshttps://cloud.yandex.ru/docs/speechkit/tts/request
...
Zusammenfassende Darstellung
1. Die Syntax ist mir immer noch ein Rätsel. Es ist nur gelungen, sich beim Server zu authentifizieren, Versuche, andere Header hinzuzufügen, waren bisher erfolglos
2. Ich frage mich, wenn WebRequest Stream mit Sprinkles empfängt, oder ich schreibe es in eine Datei falsch, aber das .ogg-Dateiformat aus char Array Ergebnis mit WebRequest-Methode erhalten ist falsch.
Faule Tomaten willkommen!