그리고 다시 dll과 시장 - 페이지 15

 
Реter Konow :
401 오류는 무엇을 의미합니까?

Yandex에서 "http 401"을 운전하고 모든 것이 거기에 자세히 설명되어 있습니다.

 
Nikolai Karetnikov :

코드 실행 결과 - " Webrequest4Voice (EURCHF,D1) 'https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST' 로드 오류, 코드 401 "

401은 서버에 인증 이 필요합니다.

일부 요청 에뮬레이터(예: 우편 배달부)를 사용하여 거기에서 일반 요청을 만든 다음 이 요청을 mql로 전송합니다.

또는 Maxim이 위에 쓴 것처럼
 
Maxim Kuznetsov :

Yandex에서 "http 401"을 운전하고 모든 것이 거기에 자세히 설명되어 있습니다.

그리고 누가 그 http 오류를 말했습니까? TS는 설명하지 않았지만 찾아야합니까?))))
 

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

여기에서 문제 없이 다운로드했습니다.

스냅샷3

소리를 재생

 
Alexsandr San :

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

여기에서 문제 없이 다운로드했습니다.


그리고 다운로드한 파일 PlaySound 는 다운로드한 후 즉시 Files 폴더에 기록되는 경우 재생 가능한가요? 거기에 코드에 몇 줄을 추가하면 이미 확인할 수 있습니다.
 
Реter Konow :
다운로드한 파일을 다운로드한 후 즉시 Files 폴더에 기록하면 다운로드한 파일 PlaySound를 얼마나 재생할 수 있습니까? 거기에 코드에 몇 줄을 추가하면 이미 확인할 수 있습니다.

따라서 즉시 폴더에 있고 파일이 로드되고 모든 것이 제대로 작동합니다 .

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

이것이 내가 한 방법입니다

그것은 다운로드하고 즉시 잃는다

         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 :

그래서 그것은 즉시 폴더에 있고 파일 을 로드했습니다.

좋아, 그 후에 코드 에 PlaySound에 대한 호출이 있습니까? 다운로드하자마자 즉시 재생산됩니다.
 
Maxim Kuznetsov :

컬 옵션에서 WebRequest 옵션으로 HTTP 요청을 변환하려면:

1. 일반적으로 Wikipedia에서 HTTP가 작동하는 방식을 확인합니다.

2. Curl 문서에서 어떤 옵션이 무엇을 의미하며 왜 제공되는지 살펴보십시오.

3. WebRequest에 대한 도움말을 읽고 이 스레드에서도 많은 예를 확인하십시오.

4. 당신이 한 일을 깨닫고 코드를 작성하십시오 :-) 무엇, 왜, 왜 대체됩니다.

당신은 4가지 포인트가 모두 당신에게 도움이 될 것이라고 분명히 기대합니다. 나는 주말, 적은 시간, 많은 아이디어를 이해합니다. 빨리해야

그러나 여전히 스스로해야합니다.

맥심) 글쎄, 그것은 무엇을위한 것입니까?

curl에는 하나의 매개변수만 있습니다. "-u"는 권한 부여 또는 사용자이고 뒤에 apikey가 옵니다.

WebRequest 도움말에서 결과 json 배열을 yahoo Finance의 응답으로 채우는 예를 분석했습니다.

이 스레드에서 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 :

그래서 그것은 바로 폴더로 이동하고 파일을 로드하고 모든 것이 제대로 작동합니다 .

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

이것이 내가 한 방법입니다

그것은 다운로드하고 즉시 잃는다

분명히 효과가 있습니다. 이제 TS가 웹 요청을 처리해야 하며 완료되었습니다.