Как через WebRequest отправить символ переноса строки? - страница 2

 

Или я что-то не так делаю?

//--- input parameters
string mess = "line1 \n line2";
string ChannelID =   " "; // ID Канала (чата)
string BotID     =   " "; // ID Бота телеграм
string URL       = "https://api.telegram.org/";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string headers;
   char post[],result[];
   string serv = URL + "bot" + BotID + "/sendMessage?chat_id=" + ChannelID + "&parse_mode=markdown&text=";
   StringToCharArray(mess,post,0,WHOLE_ARRAY,CP_UTF8);
   int res=WebRequest("GET", serv+mess, NULL, NULL, 5000, post, ArraySize(post), result, headers);
   string out=CharArrayToString(result,0,WHOLE_ARRAY,CP_UTF8);
   Print(out);
   if(res < 0)
     {
      Print("Ошибка в WebRequest. Код ошибки  =", GetLastError());
     }
  }
 
Разобрался в одном - на МТ5 этот способ работает, а в МТ4 - нет. Не пойму почему.
 
Aleksandr Chernov #:
Разобрался в одном - на МТ5 этот способ работает, а в МТ4 - нет. Не пойму почему.

Немного не так нужно делать

//--- input parameters
string mess = "Строка 1\nСтрока2";
string ChannelID =   " "; // ID Канала (чата)
string BotID     =   " "; // ID Бота телеграм
string URL       = "https://api.telegram.org/";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string headers;
   char post[],result[];
   string serv = URL + "bot" + BotID + "/sendMessage";
   mess = "chat_id=" + ChannelID + "&parse_mode=markdown&text="+mess;
   StringToCharArray(mess,post,0,WHOLE_ARRAY,CP_UTF8);
   int res=WebRequest("GET", serv, NULL, NULL, 5000, post, ArraySize(post), result, headers);
   string out=CharArrayToString(result,0,WHOLE_ARRAY,CP_UTF8);
   Print(out);
   if(res < 0)
     {
      Print("Ошибка в WebRequest. Код ошибки  =", GetLastError());
     }
  }


 

Доброго времени суток. Перепробовала все варианты, которые нашла, всё равно не получается отправить 2 строки.

Подскажите пожалуйста, где искать ошибку? Сейчас при работе этого кода выдаёт ошибку с массивом 4029 

   //--- input parameters
   string mess = "\n Строка 1\nСтрока2";
   string ChannelID =   " "; // ID Канала (чата)
   string BotID     =   " "; // ID Бота телеграм
   string URL       = "https://api.telegram.org";
   //---
void OnInit()
{
   string headers;
   char post[],result[];
   string serv = URL + "bot" + BotID + "/sendMessage";
   
   mess = "chat_id=" + ChannelID + "&parse_mode=markdown&text="+mess;
   StringToCharArray(mess,post,0,WHOLE_ARRAY,CP_UTF8);
   int res=WebRequest("GET", serv, NULL, NULL, 1000, post, ArraySize(post), result, headers);
   string out=CharArrayToString(result,0,WHOLE_ARRAY,CP_UTF8);
   Print(out);
   if(res < 0)
     {
      Print("Ошибка в WebRequest. Код ошибки  = ", GetLastError());
     }
 }
 
VikiSh #:

Доброго времени суток. Перепробовала все варианты, которые нашла, всё равно не получается отправить 2 строки.

Подскажите пожалуйста, где искать ошибку? Сейчас при работе этого кода выдаёт ошибку с массивом 4029 

метод GET ??

и вы отправляете две строки как они есть...

это НЕВЕРНО

строка Get должна быть URL-encoded

объяснение почему так, выходит за рамки MQL - просто мат.основа Web & Http

PS/ и в методе Get строка передаётся вместе с запросом, а-ля вы её набираете в адресно строке бразера... http://site.domain.com?url_encoded_string
Причина обращения: