и снова dll и маркет - страница 17

 
Maxim Kuznetsov:

у http нету заголовков -u или --output-file

а передаются все заголовки как ключ:значение разделяемые \r\n (почти в точности цитата из справки)

у curl есть ключик который распечатает на экране весь ход обмена с сервером (и все заголовки) в деталях..

===

"читайте маны, они рулят"

наверняка Вы правы, и скриншот из postman, где пара output прописана в заголовке http запроса объясняется как то иначе ) 

подозреваю, что мы все-таки об одном и том же говорим, только разными словами )

 
Nikolai Karetnikov:

и, пожалуйста, препожалуйста, не надо больше playsound() это и так понятно, а проблема совсем в другом! )))

Задача - выполнить авторизацию на облаке IBM при помощи WebRequest. 

Кстати, output в файл все-таки попадает в headers


Не сказал бы, что все было так ясно с PlaySound ))) Выяснили например, что не смотря на документацию, .wav воспроизводятся из папки Files, (без чего Ваш проект можно было бы закрывать), и что динамичные ресурсы советника не могут нести проигрываемые звуковые файлы, из за того, что все сохраняют в uint.

Что касается авторизации в облаке IBM при помощи WebRequest, то здесь я знаю не больше Вашего, пока что... Нужно изучать. Экспериментировать... Это займет время.

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

Блин! Я застопорился на юнионах. Вебреквест возвращает динамичный массив char, а для сохранения его в ресурсе, нужно перевести его в uint. Это не проблема, если объявить юнион, но юнион позволяет объявлять только статичные массивы. Посылать в вебреквест статичный массив нельзя, потому что размер возвращаемого файла неопределен.

Вебреквест давно пора забыть, как страшный сон.

SocketRead читает в массив uchar, и дальше с этим можно делать всё, на что фантазии хватит. В примерах из Документации по ссылке, которую я приводил уже дважды, как раз реализовано получение ответа по HTTP. Допилить под задачу - и вуаля.

 
Serhii Shevchuk:

Вебреквест давно пора забыть, как страшный сон.

SocketRead читает в массив uchar, и дальше с этим можно делать всё, на что фантазии хватит. В примерах из Документации по ссылке, которую я приводил уже дважды, как раз реализовано получение ответа по HTTP. Допилить под задачу - и вуаля.

Согласен, нужно рыть в этом направлении. Хотя проблема с авторизацией кажется неразрешимой, почему то... Может опять ошибаюсь)))

 
Serhii Shevchuk:

Вебреквест давно пора забыть, как страшный сон.

SocketRead читает в массив uchar, и дальше с этим можно делать всё, на что фантазии хватит. В примерах из Документации по ссылке, которую я приводил уже дважды, как раз реализовано получение ответа по HTTP. Допилить под задачу - и вуаля.

Что вебреквест, что сокет для передачи данных, используют открытие соединения.
Функция вебреквест скрыто создаёт сессию, в сокетах мы явно устанавливаем соединение.
По этому в обоих случаях так или иначе сперва открывается канал для передачи данных.
Сокет полезен когда требуется длительная передача данных без закрытия соединения, тогда да смысл есть его использовать.
Но если сокет используется для разового запроса, то думаю особого смысла в этом нет.
Так как каждый раз при запросе будет создаваться новое соединение, на которое требуется время.
А на создание http соединения по моим замерам на языке Си, от 100 миллисекунд и выше.

 
Сделайте два запроса - в первом авторизация, а второй - запрос конвертации файла. Может чушь сказал, но может нет...)))
 

я тут программку нашёл она текст превращает .wav и сразу в папку  Files

Снимок6

 
Roman:

Что вебреквест, что сокет для передачи данных, используют открытие соединения.
Функция вебреквест скрыто создаёт сессию, в сокетах мы явно устанавливаем соединение.
По этому в обоих случаях так или иначе сперва открывается канал для передачи данных.
Сокет полезен когда требуется длительная передача данных без закрытия соединения, тогда да смысл есть его использовать.
Но если сокет используется для разового запроса, то думаю особого смысла в этом нет.
Так как каждый раз при запросе будет создаваться новое соединение, на которое требуется время.
А на создание http соединения по моим замерам на языке Си, от 100 миллисекунд и выше.

Roman! Вот это то, чего по-настоящему не хватало! Чувствуются и знания, и наличие практики! )

Попробую все-же допилить WebRequest

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

Roman! Вот это то, чего по-настоящему не хватало! Чувствуются и знания, и наличие практики! )

Попробую все-же допилить WebRequest

Так спросите у Романа, как осуществить авторизацию на сервере IBM с WebRequest. Это же ключевой вопрос!

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

Так спросите у Романа, как осуществить авторизацию на сервере IBM с WebRequest. Это же ключевой вопрос!

Я не вникал в вопрос, но как понял используется ключ, который заранее получается на том сайте куда отправляется запрос.
В таком случае авторизация не нужна, идентификация происходит по ключу.
Нужно внимательно изучить на сайте пример структуры запроса.
Как мне помнится из какого то примера, там используется тело запроса.
То есть заголовки заголовками, а сам текст передаётся в теле запроса.

Причина обращения: