e novamente dll e mercado - página 20

 
Alexsandr San:

Aqui neste site - fiz o upload de um arquivo de texto - e recebi um arquivo .wav

como organizá-lo automaticamente é a questão!?https://audio.online-convert.com/convert-to-wav

Somente em inglês.

Seu exemplo é bom, mas neste site não há autorização, ou seja, não há necessidade de especificar cabeçalhos múltiplos no pedido e, portanto, não há necessidade de entender a sintaxe de tal entrada.

Talvez, talvez eu esteja errado, mas não consigo encontrar nenhuma outra explicação para pendurar no caso de um cabeçalho e erro de autorização no caso de outro cabeçalho. Aqui está o código com dois cabeçalhos

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

assim que o segundo cabeçalho é adicionado, a autorização deixa de funcionar

2020.06.01 12:46:45.044 Webrequest4Voice (EURAUD,H1) Upload error ' ', code 401

Com um cabeçalho, a autorização funciona, mas o fluxo é conduzido para o arquivo com caracteres extras que impossibilitam a reprodução do arquivo de áudio.

 
Nikolai Karetnikov:

Há outro problema. Como dizemos entre os especialistas: "há algum tipo de mau funcionamento")).

Logo acima escrevi em detalhes como o WebRequest congela, mas recebe um fluxo, mesmo assim. O fluxo chega ao arquivo e acaba sendo quebrado. Talvez eu esteja colocando em arquivo incorretamente, mas o mais provável é que a matriz de caracteres seja preenchida com informações estranhas no momento do impasse.

É com isto que devemos lidar agora

leia (!!!) como o http transfere dados... algo sobre pedaços :-)

A primeira linha no conteúdo são os dados de serviço (comprimento se a memória servir), e somente então os dados do arquivo binário

 
talvez os caracteres /r/n de alimentação de linha devam ser adicionados aos cabeçalhos de forma diferente, talvez algo mais, como um espaço no início ou no final do cabeçalho. Sem um exemplo de trabalho, é difícil de entender
Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
  • www.mql5.com
Символы, как элемент строки, в MQL5 - это индексы в наборе символов Unicode. Они являются 16-разрядными значениями, которые можно преобразовывать в целые числа и с которыми можно манипулировать целочисленными операциями, такими как сложение и вычитание. Любой одиночный символ, заключенный в одинарные кавычки, или шестнадцатеричный ASCII-код...
 
Nikolai Karetnikov:

Há outro problema. Como dizemos entre os especialistas: "há algum tipo de mau funcionamento")).

Logo a função WebRequest funciona de uma maneira específica e é restrita internamente para tal uso". "

Estive testando o roteiro e fiquei com a pergunta: de onde veio a chave?

Tivemos uma conversa com seu agente. A primeira pergunta que ele fez foi:

Ok, não se preocupe, Você está usando um plano gratuito ou pago?

E outra:

Olá, obrigado por entrar em contato com a IBM Cloud. Para obter assistência técnica, recomendamos verificar todos os documentos disponíveis à sua disposição, pois somos principalmente uma plataforma de auto-serviço.

Mas, dando links onde você pode falar mais sobre o tópico de interesse:https://www.ibm.com/watson no final há um ícone de bate-papo Vamos conversar!

Além disso, outro link que ele me deu abriu esta página:


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

Aparentemente, o serviço é pago.

Até 10.000 caracteres por mês podem ser expressados de graça.

 
Реter Konow:

Isto se enquadra no ponto 3 - "Oua função WebRequest funciona de uma maneira específica e é restrita internamente para tal uso". "

Eu estava testando o roteiro e fiquei com a pergunta: DE ONDE vem a chave?

Tivemos uma conversa com seu agente. A primeira pergunta que ele fez foi:

Ok, não se preocupe, Você está usando um plano gratuito ou pago?

E outra:

Olá, obrigado por entrar em contato com a IBM Cloud. Para obter assistência técnica, recomendamos verificar todos os documentos disponíveis à sua disposição, pois somos principalmente uma plataforma de auto-serviço.

Mas, dando links onde você pode falar mais sobre o tópico de interesse:https://www.ibm.com/watson no final há um ícone de bate-papo Vamos conversar!

Além disso, outro link que ele me deu abriu esta página:


Maxim Kuznetsov:

leia (!!!) que tipo de dados o http dá... algo sobre pedaços :-)

no conteúdo, a primeira linha são os dados de serviço (comprimento se a memória servir), e só depois os dados do arquivo binário

Obrigado!

Eu li algumas informações, encontrei erro em meu código, corrigi-o, o WebRequest parou de pendurar e fica em fluxo, mas eu vejo as seguintes informações em arquivo de qualquer maneira

Deve haver outro "algo errado" em algum lugar ))

 
Olhe para a foto. Plano gratuito de até 10.000 caracteres por mês.
 
Maxim Kuznetsov:

leia (!!!) como o http dá dados...algo sobre pedaços :-)

a primeira linha de conteúdo contém dados de serviço (comprimento, se a memória me servir corretamente), e somente então os dados binários do arquivo

ou seja, agora entendo que no fluxo recuperável


00000089 são dados de serviço, mas não entendo como fazê-los ignorar

 
Реter Konow:
Olhe para a foto. O plano gratuito é de até 10.000 caracteres por mês.

Sim, sim, você está certo. Eu também já escrevi sobre isso aqui antes.

и снова dll и маркет
и снова dll и маркет
  • 2020.05.31
  • www.mql5.com
День добрый! Правило №1 dll на Маркете запрещен...
 
Реter Konow:
Olhe para a foto. Plano gratuito de até 10.000 caracteres por mês.

quando você se registra no site deles e segue as instruções, uma página aparece em um ponto em quea apikey está listada