
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
с авторизацией, вроде, продвинулся
Так спросите у Романа, как осуществить авторизацию на сервере IBM с WebRequest. Это же ключевой вопрос!
Роман, спасибо за комментарий! Думаю, справимся и с авторизацией.
Теперь насчет нескольких параметров. В справке по WebRequest указано
[in] Заголовки запроса вида "ключ: значение", разделенные переносом строки "\r\n".
сама переменная headers типа string
Это как так, строка содержит символ перевода, т.е. окончания строки?
наверняка Вы правы, и скриншот из postman, где пара output прописана в заголовке http запроса объясняется как то иначе )
подозреваю, что мы все-таки об одном и том же говорим, только разными словами )
я не знаю насколько кривыми руками писан postman, что это, и какое отношение имеет к вашей задаче...
но 90% решается чтением, и читать должен тот кто решает задачу.
Это довольно типовая штука - есть документация Rest-API сервиса (кстати вы её читали??) , повезло что дали пример с curl и не надо разбирать иные языки.. и надо обратиться через WebRequest MT.
запускается curl, на экран выводится протокол - какие заголовки из параметров сформированы и отправлены, что обратно получено, как понято и куда покладено.
И там прямо видно, что конкретно передать WebRequest
---
я не знаю насколько кривыми руками писан postman, что это, и какое отношение имеет к вашей задаче...
но 90% решается чтением, и читать должен тот кто решает задачу.
Это довольно типовая штука - есть документация Rest-API сервиса (кстати вы её читали??) , повезло что дали пример с curl и не надо разбирать иные языки.. и надо обратиться через WebRequest MT.
запускается curl, на экран выводится протокол - какие заголовки из параметров сформированы и отправлены, что обратно получено, как понято и куда покладено.
И там прямо видно, что конкретно передать WebRequest
---
читаем, читаем ) Разбираемся и прогресс уже есть.
с авторизацией, вроде, продвинулся
Роман, спасибо за комментарий! Думаю, справимся и с авторизацией.
Теперь насчет нескольких параметров. В справке по WebRequest указано
[in] Заголовки запроса вида "ключ: значение", разделенные переносом строки "\r\n".
сама переменная headers типа string
Это как так, строка содержит символ перевода, т.е. окончания строки?
Заголовок может состоять из нескольких строк ключ/значение, по этому используется перенос строки.
В конце заголовка обязательно ставится двойной перенос "\r\n\r\n".
Таким образом сервер понимает конец заголовка, это стандарт http.
После двойного переноса идёт тело запроса или ответа.
В функции WebRequest для удобства сделали разделение этих блоков.
Для заголовков свой параметр, для тела свой.
Но синтаксис написания запроса, требует соблюдения стандарта http.
с этого сайта https://example-files.online-convert.com/audio/wav/example.wav
загружает этот файл "example.wav"
и после скачивания проигрывает PlaySound("\\Files\\example.wav");
-------------------------------------------------
Только смысл, от этой функции ??? я думаю - ноль!
ну что, господа, продолжим, пожалуй.
во-первых, максимально упростим код самого запроса. Оставим только один заголовок - собственно авторизацию которая все же работает! В таком варианте, без дополнительных заголовков, сервер IBM отдаст нам поток в аудио формате .ogg. Да и черт бы с ним, думаем мы, давайте сначала заставим работать хоть что-то. Оставим тщетные попытки дополнительными заголовками отформатировать поток в wav и разберемся с .ogg (вот, кстати, похожая непонятка с синтаксисом WebRequest'а https://www.mql5.com/en/forum/310891#comment_16643324 )
Скрипт авторизовывается на сервере и подвисает. Ок, запустим в режиме отладки, что-ли...
видно, нет? )
Мы скидываем скрипт с графика, но он, почему-то, не прекращает выполнение полностью, а лишь прерывает синхронный WebRequest и продолжается, что в целом нам на руку.
Идем дальше. В char result[] у нас теперь поток .ogg и мы записываем его в файл.
Файл получается размером тоже 6Kb (тоже, потому что запрос curl или postman, как кому больше нравится, с теми же параметрами возвращает .ogg файл размером 6Kb, который проигрывается как надо! Хорошо слышно слово Test ))))
Теперь записываем весь char массив в файл. Спецом указываем, что нужно не мерять размер массива, а брать WHOLE_ARRAY
Вот так красиво теперь:
Вот только проблема, curl файл проигрывается нормально, а наш файл, почему-то нет
Давайте заглянем внутрь обоих файлов
Файл, скачанный curl внизу, залитый с WebRequest потока в бинарник вверху
Видите эти вкрапления 00000089, 00000004 в верхнем файле testmql5.ogg? ))) Это бонусная программа такая, что-ли? ))) Откуда это все взялось ))))))))
Суммирую
1. Синтаксис для меня по-прежнему загадка. Удалось только авторизоваться на серваке, попытки добавить другие заголовки пока неудачны
2. То ли WebRequest принимает поток с вкраплениями, то ли я его записываю в файл неправильно, но формат .ogg файла полученного из char массива result методом WebRequest - неверен
Тухлые помидоры приветствуются!
с этого сайта https://example-files.online-convert.com/audio/wav/example.wav
загружает этот файл "example.wav"
и после скачивания проигрывает PlaySound("\\Files\\example.wav");
-------------------------------------------------
Только смысл, от этой функции ??? я думаю - ноль!
Alexsandr,
все здорово, спасибо! Но wav файл должен быть сгенерирован движком TTS (TextToSpeech)
Alexsandr,
все здорово, спасибо! Но wav файл должен быть сгенерирован движком TTS (TextToSpeech)
я понял так - должно получится ???
вот что то похожее https://cloud.yandex.ru/docs/speechkit/tts/request
...
Суммирую
1. Синтаксис для меня по-прежнему загадка. Удалось только авторизоваться на серваке, попытки добавить другие заголовки пока неудачны
2. То ли WebRequest принимает поток с вкраплениями, то ли я его записываю в файл неправильно, но формат .ogg файла полученного из char массива result методом WebRequest - неверен
Тухлые помидоры приветствуются!