und wieder dll und Markt - Seite 20

 
Alexsandr San:

Hier auf dieser Website - ich habe eine Textdatei hochgeladen - und eine .wav-Datei erhalten

Die Frage ist, wie man das automatisch organisieren kann!?https://audio.online-convert.com/convert-to-wav

Nur auf Englisch.

Ihr Beispiel ist gut, aber auf dieser Website gibt es keine Autorisierung, d.h. keine Notwendigkeit, mehrere Kopfzeilen in der Anfrage anzugeben, und daher auch keine Notwendigkeit, die Syntax eines solchen Eintrags zu verstehen.

Vielleicht liege ich ja falsch, aber ich kann keine andere Erklärung dafür finden, dass bei einem Header ein Hänger auftritt und bei einem anderen Header ein Autorisierungsfehler. Hier ist der Code mit zwei Kopfzeilen

//+------------------------------------------------------------------+
//|                                                   WebRequest.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string cookie=NULL,headers;
   char   post[],result[];
   char cost_char_data[];
   string  result_headers;
   
   ResetLastError();
   ArrayFree(result);
  // headers = "Authorization: Basic YXBpa2V5OkdSMWJiM3pWTXM5ZmNOS0w2cEE5LTV6ajlwdFdsaUN1NmVoOW91cFVucFpC/r/n";
   headers = "Authorization: Basic YXBpa2V5OkdSMWJiM3pWTXM5ZmNOS0w2cEE5LTV6ajlwdFdsaUN1NmVoOW91cFVucFpC";
//   headers = headers + "Accept: audio/wav";
   headers = headers + "/r/nAccept: audio/wav/r/n";
  // headers = headers + "Accept: audio/wav/r/n";
 
   string url="https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST";
               
   int res = WebRequest("GET",url,headers,1000,cost_char_data,result,result_headers);

   if(res==-1)
     {
      printf("Ошибка в WebRequest. Код ошибки  =",GetLastError());
      //--- возможно, URL отсутствует в списке, выводим сообщение о необходимости его добавления
      MessageBox("Необходимо добавить адрес '"+url+"' в список разрешенных URL во вкладке 'Советники'","Ошибка",MB_ICONINFORMATION);
     }
   else
     {
      if(res==200)
        {
         //--- успешная загрузка
         printf("Файл успешно загружен, размер %d байт.",ArraySize(result));
         printf("Заголовки сервера: %s",result_headers);
         //--- сохраняем данные в файл
         int filehandle=FileOpen("testmql5.ogg",FILE_WRITE|FILE_BIN);
         if(filehandle!=INVALID_HANDLE)
           {
            //--- сохраняем содержимое массива result[] в файл
            FileWriteArray(filehandle,result,0,WHOLE_ARRAY);
            //--- закрываем файл
            FileClose(filehandle);
            printf("FileClose");
            
           }
         else
            printf("Ошибка в FileOpen. Код ошибки =",GetLastError());
        }
      else
         printf("Ошибка загрузки '%s', код %d",url,res);
     }
  }
//+------------------------------------------------------------------+

sobald die zweite Kopfzeile hinzugefügt wird, funktioniert die Autorisierung nicht mehr

2020.06.01 12:46:45.044 Webrequest4Voice (EURAUD,H1) Fehler beim Hochladen 'https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST', Code 401

Mit einem Header funktioniert die Autorisierung, aber der Stream wird mit zusätzlichen Zeichen versehen, die das Abspielen der Audiodatei unmöglich machen

 
Nikolai Karetnikov:

Es gibt ein weiteres Problem. Wie wir in Fachkreisen sagen: "Es liegt eine Art Fehlfunktion vor" )).

Gerade oben habe ich ausführlich beschrieben, wie WebRequest einfriert, aber trotzdem einen Stream empfängt. Der Stream erreicht die Datei und erweist sich als fehlerhaft. Vielleicht schreibe ich es falsch in die Datei, aber höchstwahrscheinlich wird das Char-Array im Moment des Deadlocks mit fremden Informationen gefüllt.

Damit sollten wir uns jetzt befassen

lesen (!!!), wie http Daten überträgt... etwas über chunked :-)

Die erste Zeile im Inhalt sind die Servicedaten (Länge, wenn ich mich recht erinnere), und erst dann die Daten der Binärdatei

 
vielleicht sollten die /r/n-Zeilenvorschubzeichen anders in die Kopfzeilen eingefügt werden, vielleicht etwas anderes, wie ein Leerzeichen am Anfang oder am Ende der Kopfzeile. Ohne ein funktionierendes Beispiel ist es schwer, das zu verstehen.
Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
  • www.mql5.com
Символы, как элемент строки, в MQL5 - это индексы в наборе символов Unicode. Они являются 16-разрядными значениями, которые можно преобразовывать в целые числа и с которыми можно манипулировать целочисленными операциями, такими как сложение и вычитание. Любой одиночный символ, заключенный в одинарные кавычки, или шестнадцатеричный ASCII-код...
 
Nikolai Karetnikov:

Es gibt ein weiteres Problem. Wie wir in Fachkreisen sagen: "Es liegt eine Art Fehlfunktion vor" )).

Gerade die WebRequest-Funktion auf eine bestimmte Art und Weise und ist intern auf diese Verwendung beschränkt. "

Ich habe das Skript getestet und stehe vor der Frage: Woher kommt der Schlüssel?

Ich hatte ein Gespräch mit ihrem Vertreter. Die erste Frage, die er stellte, lautete:

Keine Sorge, verwenden Sie einen kostenlosen oder kostenpflichtigen Plan?

Und eine andere:

Hallo, vielen Dank, dass Sie sich an IBM Cloud wenden. Für technische Unterstützung empfehlen wir Ihnen, alle verfügbaren Dokumente zu prüfen, da wir hauptsächlich eine Selbstbedienungsplattform sind.

Aber, gab Links, wo Sie mehr über das Thema von Interesse sprechen können:https://www.ibm.com/watson am unteren Rand gibt es ein Symbol der Chat Let's talk!

Ein weiterer Link, den er mir gab, öffnete diese Seite:


Документация по MQL5: Сетевые функции / WebRequest
Документация по MQL5: Сетевые функции / WebRequest
  • www.mql5.com
Для использования функции WebRequest() следует добавить адреса серверов в список разрешенных URL во вкладке "Советники" окна "Настройки". Порт сервера выбирается автоматически на основе указанного протокола - 80 для "http://" и 443 для "https://". Функция WebRequest() является синхронной, это означает, что она приостанавливает выполнение...
 

Offenbar ist der Dienst kostenpflichtig.

Bis zu 10.000 Zeichen pro Monat können kostenlos eingesprochen werden.

 
Реter Konow:

Dies fällt unter Punkt 3 - "Entweder arbeitetdie WebRequest-Funktion auf eine bestimmte Art und Weise und ist intern auf diese Verwendung beschränkt. "

Ich habe das Skript getestet und stand vor der Frage: WOher kommt der Schlüssel?

Ich hatte ein Gespräch mit ihrem Vertreter. Die erste Frage, die er stellte, lautete:

Keine Sorge, verwenden Sie einen kostenlosen oder kostenpflichtigen Plan?

Und eine andere:

Hallo, vielen Dank, dass Sie sich an IBM Cloud wenden. Für technische Unterstützung empfehlen wir Ihnen, alle verfügbaren Dokumente zu prüfen, da wir hauptsächlich eine Selbstbedienungsplattform sind.

Aber, gab Links, wo Sie mehr über das Thema von Interesse sprechen können:https://www.ibm.com/watson am unteren Rand gibt es ein Symbol der Chat Let's talk!

Ein weiterer Link, den er mir gab, öffnete diese Seite:


Maxim Kuznetsov:

lesen (!!!), welche Art von Daten http verrät...irgendwas mit chunked :-)

im Inhalt ist die erste Zeile die Dienstdaten (Länge, wenn ich mich recht erinnere), und erst dann die Daten der Binärdatei

Ich danke Ihnen!

Ich las einige Informationen, fand Fehler in meinem Code, behoben, WebRequest gestoppt hängen und bekommt Strom, aber ich sehe folgende Informationen in der Datei trotzdem

Irgendwo muss doch noch ein anderer "Fehler" sein ))

 
Sehen Sie sich das Bild an. Kostenloser Tarif für bis zu 10.000 Zeichen pro Monat.
 
Maxim Kuznetsov:

lesen (!!!), wie http Daten weitergibt...irgendwas mit chunked :-)

die erste Zeile des Inhalts enthält Dienstdaten (Länge, wenn ich mich recht erinnere), und erst dann die Binärdaten der Datei

d.h. ich verstehe jetzt, dass in dem abrufbaren Strom


00000089 sind Dienstdaten, aber ich verstehe nicht, wie ich sie ignorieren kann.

 
Реter Konow:
Sehen Sie sich das Bild an. Der kostenlose Tarif umfasst bis zu 10.000 Zeichen pro Monat.

Ja, ja, Sie haben Recht. Ich habe hier auch schon darüber geschrieben

и снова dll и маркет
и снова dll и маркет
  • 2020.05.31
  • www.mql5.com
День добрый! Правило №1 dll на Маркете запрещен...
 
Реter Konow:
Sehen Sie sich das Bild an. Kostenloser Tarif für bis zu 10.000 Zeichen pro Monat.

Wenn Sie sich auf der Website registrieren und den Aufforderungen folgen, erscheint an einer Stelle eine Seite, auf derder Apikey aufgeführt ist

Grund der Beschwerde: