そしてまた、DellとMarket - ページ 15

 
Реter Konow:
401エラーとはどういう意味ですか?

Yandexに "http 401 "と入力すると、すべてを詳細に教えてくれます。

 
Nikolai Karetnikov:

code result -"Webrequest4Voice(EURCHF,D1) ダウンロードエラー 'https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST', code 401".

401はサーバーが認証を要求して いる

クエリエミュレータ(例:postman)を持っていき、そこで通常のリクエストを行い、それをmqlに転送する。

あるいは、マキシムが上で書いたように
 
Maxim Kuznetsov:

Yandexに "http 401 "と入力すると、すべてを詳細に教えてくれます。

誰がhttpエラーと言った?TCは説明してないし、調べないといけないのか))。
 

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

ここから問題なくダウンロードされました

スナップショット3

という音声を再生します。

 
Alexsandr San:

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

ここから問題なくダウンロードされました


ダウンロードしたファイルを、ダウンロード直後にFilesフォルダに書き込んだ場合、どの程度再生可能なのか?コードに2行ほど追加すれば、テストができます。
 
Реter Konow:
また、ダウンロードしたファイルをPlaySoundがダウンロード後、すぐにFilesフォルダに再生した場合、どの程度再生可能なのでしょうか?コードに2行ほど追加すれば、テストができます。

で、Files フォルダに直接移動し、すべて正常に動作 します。

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

という感じです。

♪ it downloads and plays right away ♪

         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:

で、Files フォルダに直行します。

OK、そのあとのコードにPlaySoundの呼び出しが あるのですか?ダウンロードしたらすぐに再生できるように。
 
Maxim Kuznetsov:

HTTPリクエストをcurlのオプションからWebRequestの パラメータに変換するには

1. 一般に、HTTPがどのように構成されているかは、wikipediaを見てください。

2. Curlのドキュメントで、オプションの意味と使用理由を確認する。

3. WebRequestのヘルプを読み、このスレッドでも多くの例を見ることができます。

4.自分が何をしたかを意識してコードを書くこと :-) 何が、なぜ、なぜ使われるのかを考えること。

あなたは明らかに4点すべてを期待していますね。週末で時間がなく、アイデアがたくさんあるのはわかりますが。迅速でなければならない。

でも、やっぱり自分でやるしかないんです。

マキシム、 ) さて、どうする?

curlではパラメータは1つだけです - "-u" は認証またはユーザー、その後にapikeyが続きます。

WebRequest のヘルプファイルには、結果の json 配列に yahoo ファイナンスのレスポンスを記入する方法が記載されています。

このスレッドにあるWebRequestの例はすべて、ヘルプにあるたった一つのスクリプトで、ずっと投稿していました ))) 。)

何が行われたかを意識すること、それは手本がないと難しい。TTSを商用提供しているサイトには、.NET、Java、curlなど、いわば成熟したプログラミング言語による事例があります。MQLのような子どもたちのことも、まったくわかっていない。

つまり、あなたの投稿は理論的には重要ですが、その有用性においては取るに足らないものなのです。

具体的には、例えば私の場合、どこがどうなのかがはっきりしない。

1)ヘッダー

2) url または

3)どこか別の場所

wavファイルへの出力を指定する必要があるのですが、このようなことが書かれている例や書籍は見当たりません。

 

とにかく、そういうことなんです。

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

のみサイトが間違っています。

ショット4

 
Alexsandr San:

で、Files フォルダに直接移動し、すべて正常に動作 します。

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

という感じです。

♪ it downloads and plays right away ♪

なるほど、うまくいっているんですね。あとはTCがwebrequestを整理すれば完了です。