Как задать body в WebRequest Post запросе?

 

Мне нужно сделать Post запрос "https://sslecal2.forexprostools.com/ajax.php". Ниже мой код:

string MakePostRequest(string _url)
{
  string _url = "https://sslecal2.forexprostools.com/ajax.php";
  string _headers = "X-Requested-With: XMLHttpRequest\r\nContent-Type: application/x-www-form- urlencoded";
  string _params = "dateFrom=2018-12-24\r\ndateTo=2018-12-24\r\ntimeZone:18\r\naction:filter";

  string stringresult = "";

  char data[];
  StringToCharArray(_params, data, 0, StringLen(_params) - 1);

  char result[];
  string result_headers;
  ResetLastError();

  int res = WebRequest("POST", _url, _headers, 30000, data, result, result_headers);

  if (res == -1)
  {
      Print("Error in WebRequest. Error code =", GetLastError());
      //--- URL may not exist in white list, so there is a message for it
      MessageBox("Add '" + _url + "' to white list in options in experts page. ", "Error: ", MB_ICONINFORMATION);
  }
  else
  {
      if (res == 200)
      {
          //--- Succesfully downloaded
          PrintFormat("Succesfully downloaded, size %d.", ArraySize(result));

          //--- Save result[] to file
          int filehandle = FileOpen("debug_output.htm", FILE_WRITE | FILE_BIN);
          if (filehandle != INVALID_HANDLE)
          {
              FileWriteArray(filehandle, result, 0, ArraySize(result));
              FileClose(filehandle);
          }
          else
          {
              Print("Error in FileOpen. Error code =", GetLastError());
          }
          stringresult = CharArrayToString(result);
      }
      else
          PrintFormat("Error in download '%s', code %d", _url, res);
  }
  return stringresult;
}

Я сделал что то не так в "data" в строке "WebRequest("POST", _url, _headers, 30000, data, result, result_headers);" потому что я получаю 200 с пустым html кодом.

Прикрепляю скрины этого запроса в postman.

Файлы:
 

Попробуйте изменить начало кода таким образом:

   string _headers="X-Requested-With: XMLHttpRequest\r\nContent-Type: application/x-www-form-urlencoded";

   string _params="dateFrom=2018-12-24&dateTo=2018-12-24&timeZone=18&action=filter";
   
   string stringresult="";

   char data[];
   StringToCharArray(_params,data);
 
Andrey Voytenko:

Попробуйте изменить начало кода таким образом:

 Решение работает. Спасибо!
Причина обращения: