https://www.mql5.com/ru/forum/304239/page51#comment_11349486
Я так и не получил ответа.
https://www.mql5.com/ru/forum/304239/page51#comment_11349486
Я так и не получил ответа.
Спасибо за информацию.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Alain Verleyen, 2019.04.16 03:50
Build 2007/2025.
Кажется, невозможно изменить заголовок «Accept» в WebRequest (с mql4 это работает).
Прикрепленный код должен возвращать JSON-ответ, например:
{ "responseParameters": { "doui_setResponseParameters": [ "8AA8D0CD6A05153A016A16735AF94E0E"]}}
Но ответ - HTML-файл, потому что серверу нужен заголовок «Accept: application / json». Я знаю это, потому что это работает с Почтальоном, например.
При проверке HTTP, отправляемого MT5 с Wireshark, заголовок «Принять» всегда:
Принять: * / *
Это ошибка или я что-то упустил?
Пример кода:
string url = "http://localhost:8000/api/user"; string request_headers = "Accept: application/json"; uchar request_data[]; uchar response_body[]; string response_headers; int response_code = -1; ResetLastError(); response_code = WebRequest("GET", url, request_headers, NULL, request_data, response_body, response_headers); int error = GetLastError(); Print("\nresponse_code: ", response_code, ", error: ", error);
//---
В программе Wireshark видно, что заголовок Accept: application/json заменён на Accept: */*
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Обсуждение статьи "Веб-проекты (Часть III): Система авторизации Laravel/MetaTrader 5"
Anatoli Kazharski, 2022.05.19 13:47
Починили.
На билде 3295 проблемы нет.
[response_headers] Host: localhost Date: Thu, 19 May 2022 11:39:26 GMT Connection: close X-Powered-By: PHP/7.4.6 Cache-Control: no-cache, private Date: Thu, 19 May 2022 11:39:26 GMT Content-Type: application/json X-RateLimit-Limit: 60 X-RateLimit-Remaining: 59
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет!
Столкнулся с ошибкой при работе с WebRequest(). Сначала продемонстрирую результаты из командной строки.
Делаем запрос без указания заголовков и получаем такой результат. В данном случае всё правильно, так и должно быть. Ответ возвращается в формате text/html.
Если изменить запрашиваемый тип данных на application/json, то получаем вот такой результат:
//---
При отправке запроса из MetaTrader 5 с заголовком Accept: application/json всегда получаем ответ:
Content-Type: text/html; charset=UTF-8
//---
Как получить ожидаемый результат?
P.S. В командной строке, в Postman и в браузерном приложении всё работает, как нужно.