Что не так? Как отправить данные в поддерживаемом виде?

 

Добрый вечер.


Как мне отправить данные на сервер node.js в правильном формате? Чтобы я не отправлял, одно только - underfined(NULL).


Вот мой код:


//+------------------------------------------------------------------+
//| Test.mq4 |
//| Copyright 2018, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
string headers;
char data[], result[];
string str = "message=hello"; //:MARK - POST-data, variables to send
StringToCharArray(str, data);
string b = CharArrayToString(data);
Print( "Test:", b ); //:MARK - just a test of data, if good ... OK, data was setup correctly.

headers = "application/json";

WebRequest( "POST", "http://localhost", NULL, NULL, 3000, data, ArraySize( data ), result, headers);
Print(CharArrayToString(result));
}
//+------------------------------------------------------------------+

 

Буду очень признателен, если поможете.

Спасибо!

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. От теории к практике Добрый вечер, уважаемые трейдеры...
 
Артем Голубин:

Добрый вечер.

Как мне отправить данные на сервер node.js в правильном формате? Чтобы я не отправлял, одно только - underfined(NULL).

Вот мой код:

Буду очень признателен, если поможете.

Спасибо!

   str="--"+sep+"\r\n";
   str+="Content-Disposition: form-data; name=\"req\"\r\n\r\n";
   str+=text+"\r\n";
//--- завершающая строка multipart-запроса
   str+="--"+sep+"--\r\n";
//--- собираем тело POST-запроса в одну строку 
   StringToCharArray(str,data,0,WHOLE_ARRAY,CP_UTF8);
   ArrayResize(data,ArraySize(data)-1);
//--- подготовим заголовок запроса   
   str="Content-Type: multipart/form-data; boundary="+sep+"\r\n";
//--- выполняем запрос на отправку
   res=WebRequest("POST",path,str,10000,data,data,str);
//--- получим ответ от сервера
      str=CharArrayToString(data);
 
Vitaly Muzichenko:

Виталий, благодарю за ответ! Но это не совсем то... Можете ли Вы подсказать решение, в котором я смогу получить body?


Вот пример того, что я получаю сейчас.

{ method: 'POST',

  url: '/',

  header:

   { 'cache-control': 'no-cache',

     connection: 'Keep-Alive',

     'proxy-connection': 'Keep-Alive',

     pragma: 'no-cache',

     'content-type': 'multipart/form-data; boundary=hello',

     accept: 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*',

     'accept-charset': '*,utf-8',

     'accept-language': 'en',

     host: '127.0.0.1',

     'user-agent': 'MetaTrader 4 Terminal/4.1090 (Windows NT 10.0; x64)',

     'content-length': '71' } }

Спасибо!

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