ve yine dll ve market - sayfa 15

 
Реter Konow :
401 hatası ne anlama geliyor?

Yandex'de "http 401" kullanıyorsunuz ve orada her şey ayrıntılı olarak anlatılıyor

 
Nikolai Karetnikov :

kod yürütme sonucu - " Webrequest4Voice (EURCHF,D1) 'https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST' yüklenirken hata oluştu, kod 401 "

401 sunucu kimlik doğrulama gerektiriyor

bir istek öykünücüsü (örneğin postacı) alın ve orada normal bir istek oluşturun, ardından bu isteği mql'ye aktarın.

veya Maxim'in yukarıda yazdığı gibi
 
Maxim Kuznetsov :

Yandex'de "http 401" kullanıyorsunuz ve orada her şey ayrıntılı olarak anlatılıyor

Ve kim http hatası dedi? TS açıklamadı, ama aramalı mıyım?)))
 

https://example-files.online-convert.com/audio/wav/example.wav

buradan sorunsuz indirdim.

anlık görüntü3

ve sesi çal

 
Alexsandr San :

https://example-files.online-convert.com/audio/wav/example.wav

buradan sorunsuz indirdim.


Ve indirilen PlaySound dosyası, indirdikten hemen sonra Dosyalar klasörüne yazılırsa ne kadar oynatılabilir? Orada, kodda birkaç satır ekleyin ve zaten kontrol edebilirsiniz.
 
Реter Konow :
Ve indirilen PlaySound dosyası, indirdikten hemen sonra Dosyalar klasörüne yazılırsa ne kadar oynatılabilir? Orada, kodda birkaç satır ekleyin ve zaten kontrol edebilirsiniz.

bu yüzden hemen bir klasördedir ve Dosyalar yüklenir ve her şey sesli çalışır

-------------------------------------------------- ----------------

ben böyle yaptım

indirir ve hemen kaybeder

         int filehandle= FileOpen ( "example.wav" , FILE_WRITE | FILE_BIN );
         if (filehandle!= INVALID_HANDLE )
           {
             //--- сохраняем содержимое массива result[] в файл
             FileWriteArray (filehandle,result, 0 , ArraySize (result));
             //--- закрываем файл
             FileClose (filehandle);
             Sleep ( 1 * 1000 );
             PlaySound ( "\\Files\\example.wav" );
           }
 
Alexsandr San :

bu yüzden hemen klasördedir ve Dosyalar yüklenir

Tamam, bundan sonra kodda PlaySound'a bir çağrı var mı? En kısa sürede indirilir, hemen çoğaltılır.
 
Maxim Kuznetsov :

Bir HTTP isteğini kıvrılma seçeneklerinden WebRequest seçeneklerine çevirmek için:

1. genel anlamda, Wikipedia'da HTTP'nin nasıl çalıştığını görün

2. Curl belgelerine bakın hangi seçenek, ne anlama geliyor ve neden hizmet ediyor

3. WebRequest'teki yardımı okuyun ve bu başlıkta bile birçok örnek bulunan örnekleri görün

4. Ne yaptığınızın farkına vararak kod yazın :-) ne, neden, neden değiştirilir.

4 puanın da işinize yarayacağını açıkça umuyorsunuz. Hafta sonu, az zaman, çok fikir olduğunu anlıyorum. hızlı bir şekilde gerekiyor

Ama yine de kendin yapmalısın.

Maxim,) Peki, ne için?

Curl'de yalnızca bir parametre vardır - "-u", yetkilendirme veya kullanıcıdır, ardından apikey gelir

WebRequest yardımında, elde edilen json dizisinin yahoo finanstan gelen bir yanıtla doldurulmasıyla bir örnek analiz edildi.

Bu başlıkta, WebRequest'teki tüm örnekler, bunca zaman yayınladığım yardımdaki tek komut dosyasıdır))))

Ne yaptığınızı anlamak - sadece bir örnek olmadan yapmak zor. TTS'nin ticari olarak sunulduğu sitelerde .NET, Java, curl'den örnekler analiz edilir. Yani, olgun programlama dilleriyle. MQL gibi çocukları bilmiyorlar.

Yani teorik olarak gönderiniz önemli, ancak yük açısından önemsiz.

Özellikle, örneğin, hangi yerde benim için net değil:

1) başlıklar,

2) url veya

3) başka bir yerde,

çıktıyı bir wav dosyasına belirtmek gerekiyor ve örnekler, kitaplar, bunun söyleneceği yer, bulamıyorum

 

kısacası bu iş

 //+------------------------------------------------------------------+
//|                                                   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;

   headers = "-u apikey:GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB --output hello_world.wav" ;
   string url= "https://example-files.online-convert.com/audio/wav/example.wav" ;
   ResetLastError ();
   int res = WebRequest ( "GET" ,url,headers, 1000 ,cost_char_data,result,result_headers);
   if (res==- 1 )
     {
       Print ( "Ошибка в WebRequest. Код ошибки  =" , GetLastError ());
       //--- возможно, URL отсутствует в списке, выводим сообщение о необходимости его добавления
       MessageBox ( "Необходимо добавить адрес '" +url+ "' в список разрешенных URL во вкладке 'Советники'" , "Ошибка" , MB_ICONINFORMATION );
     }
   else
     {
       if (res== 200 )
        {
         //--- успешная загрузка
         PrintFormat ( "Файл успешно загружен, размер %d байт." , ArraySize (result));
         //PrintFormat("Заголовки сервера: %s",headers);
         //--- сохраняем данные в файл
         int filehandle= FileOpen ( "example.wav" , FILE_WRITE | FILE_BIN );
         if (filehandle!= INVALID_HANDLE )
           {
             //--- сохраняем содержимое массива result[] в файл
             FileWriteArray (filehandle,result, 0 , ArraySize (result));
             //--- закрываем файл
             FileClose (filehandle);
             Sleep ( 1 * 1000 );
             PlaySound ( "\\Files\\example.wav" );
           }
         else
             Print ( "Ошибка в FileOpen. Код ошибки =" , GetLastError ());
        }
       else
         PrintFormat ( "Ошибка загрузки '%s', код %d" ,url,res);
     }
  }
//+------------------------------------------------------------------+

sadece site değil

anlık görüntü4

 
Alexsandr San :

bu yüzden doğrudan klasöre gider ve Dosyaları yükler ve her şey sesli çalışır

-------------------------------------------------- ----------------

ben böyle yaptım

indirir ve hemen kaybeder

Açıkçası, işe yarıyor. Artık web talebiyle ilgilenmek TS'ye kalıyor ve işiniz bitti.