并再次进行dll和营销 - 页 20

 
Alexsandr San:

在这个网站上--我上传了一个文本文件--得到一个.wav文件

如何自动组织是一个问题!https://audio.online-convert.com/convert-to-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;
   
   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);
     }
  }
//+------------------------------------------------------------------+

一旦加入第二个头,授权就会停止工作。

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

有了一个头,授权就可以工作了,但流被驱动到文件中的额外字符使音频文件的播放无法进行。

 
Nikolai Karetnikov:

还有一个问题。正如我们在专家中所说:"有某种故障"))。

就在上面,我详细写了WebRequest如何冻结,但还是收到了一个流。流到了文件里结果发现是坏的也许我放进文件 的方式不正确,但最有可能的是,在死锁的那一刻,char数组被填充了无关的信息。

这就是我们现在应该处理的问题

阅读(!!!)http如何传输数据...关于分块的东西:-)

内容中的第一行是服务数据(如果没记错的话,是长度),然后才是二进制文件数据

 
也许/r/n换行 字符应该以不同的方式添加到标题中,也许是其他的东西,比如在标题的开头或结尾添加空格。如果没有一个有效的例子,就很难搞清楚。
Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
  • www.mql5.com
Символы, как элемент строки, в MQL5 - это индексы в наборе символов Unicode. Они являются 16-разрядными значениями, которые можно преобразовывать в целые числа и с которыми можно манипулировать целочисленными операциями, такими как сложение и вычитание. Любой одиночный символ, заключенный в одинарные кавычки, или шестнадцатеричный ASCII-код...
 
Nikolai Karetnikov:

还有一个问题。正如我们在专家中所说:"有某种故障"))。

就在WebRequest功能以特定的方式工作,并在内部限制这种使用"

我一直在测试这个脚本,我留下了一个问题:钥匙是从哪里来的?

与他们的代理人进行了交谈。他问的第一个问题是。

好的,不用担心,你使用的是免费还是付费计划?

还有一个。

你好,感谢你联系IBM云。 对于技术援助,我们建议查看所有可用的文档,因为我们主要是一个自助服务平台。

但是,给出了你可以就感兴趣的话题进行更多讨论的链接:https://www.ibm.com/watson,在底部有一个聊天的图标,让我们来谈谈!

此外,他给我的另一个链接打开了这个页面。


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

显然,这项服务是有偿的。

每月最多可以免费为10,000个字符发声。

 
Реter Konow:

这属于第3点--"要么WebRequest功能以特定的方式工作,并在内部限制这种使用"

我在测试脚本时,发现了一个问题:钥匙从哪里来?

与他们的代理人进行了交谈。他问的第一个问题是。

好的,不用担心,你使用的是免费还是付费计划?

还有一个。

你好,感谢你联系IBM云。 对于技术援助,我们建议查看所有可用的文档,因为我们主要是一个自助服务平台。

但是,给出了你可以就感兴趣的话题进行更多讨论的链接:https://www.ibm.com/watson,在底部有一个聊天的图标,我们来谈谈!

此外,他给我的另一个链接打开了这个页面。


Maxim Kuznetsov:

阅读(!!!)什么样的数据是http泄露的...关于chunked的东西:-)

在内容上,第一行是服务数据(如果没记错的话,是长度),然后才是二进制文件数据。

谢谢你!

我读了一些信息,发现了我代码中的错误,把它修好了,WebRequest不再挂起,并得到了流,但我还是在文件中看到以下信息

一定有另一个 "不对劲 "的地方))

 
看看这幅画。免费计划每月最多 10,000 个字符。
 
Maxim Kuznetsov:

阅读(!!!)http如何提供数据...关于分块的东西:-)

第一行内容包含服务数据(长度,如果我没记错的话),然后才是文件的二进制数据。

也就是说,我现在明白,在可检索流中


00000089是服务数据,但我不明白如何使其忽略

 
Реter Konow:
看看这幅画。免费计划是每月最多10,000个字符。

是的,是的,你是对的。我以前 也在这里写过 这个问题

и снова dll и маркет
и снова dll и маркет
  • 2020.05.31
  • www.mql5.com
День добрый! Правило №1 dll на Маркете запрещен...
 
Реter Konow:
看看这幅画。免费计划每月最多 10,000 个字符。

当你在他们的网站上注册并按照提示操作时,有一个页面出现,其中列出了apikey