我已将本机 WebRequest()
功能用于POST
数据。
通常我会使用以下这些行发布数据
// **********
char dataUpdatePost[];
char dataUpdateResult[];
string dataUpdateStr = "dataUpdateFlag=YES&orderNumber=" + orderNumber + "&profit=" + profit + "&profitPips=" + profitPips + "&cookie=" + sessionID;
ArrayResize(dataUpdatePost, StringToCharArray(dat[0,1], dataUpdatePost, 0, WHOLE_ARRAY, CP_UTF8) - 1);
ResetLastError();
int updateDataRes = WebRequest( "POST",
"http://service.jumpinvestor.com/",
"",
NULL,
1,
dataUpdatePost,
0,
dataUpdateResult,
dataUpdateHeaders
);
// **********
它工作正常......
但是我想发送一个像这样的数组。
string dat[3][10];
MQL4
是否有办法通过 WebRequest()
发送?
提前谢谢。
答案 0 :(得分:0)
通用方法是编写特定于域的包装器,以便将 string dat[3][10]
数组单元格转换为字符串。
SER/DES
包装器:在 MQL4
/ python-AI/ML
分布式处理网格计算中,以下简单的消息传递语法显示了一种可能的方式 ( 确定 ,可能是二进制效率程序包,但性能或邮件大小开销都不是问题,因为CPU绑定的AI / ML过程代表主要的延迟因素):
A "JUST-ENOUGH-DESIGN"
MINIMALISTIC
SERialiser on MT4 side: fast, CPU/RAM efficient, loss-less
DESerialiser on .recv side: fast & unambiguous binary/ASCII DES-erialisation
HERE: SER-ialiser
- byte-aligns data in ASCII uchar-s
- adds Section + EoLN separators
- adds Item + ValItem separators
- sends plain ASCII string across the network ---> (ref. ROWs below)
+------------------------------------------------------------------------------------------ aSectionSEPARATOR ( no CrLf ambiguity in MT4/UNICODE string / StringSplit( string, ushort, ... ) )
| +----------------------------------+----------------------------------+--- aLevTpSlSEPARATOR { ... o ... o ... o ... }[0..3]
| 0| 1| 2 | 3
| | | +------------|--- aValItemSEPARATOR { ... | ... | ... | ... }[0..2,3]
| | | | |
| 0:1:2| : : : | : : v |+-- expEoLN_SEPARATOR
| : : | 0: 1: 2: 3| : : : ||
v : : v : : : v 0: 1: 2: 3 vv
/\/\/\/\/\/\/:\:/|\/\:/\/\/:\/\/\/\/\/\:/\/\/\/\/\/\|/\/:\/\/\:/\/\/\/\/\/|\/\/\/\/\/\/|*
_ 1192.39001|+| o--^| 1.52| 4.57070| 3.00752 o--v| 0.31| 1.80752| 5.77070 o*
_ 1186.39001|+| o--^| 1.31| 4.09104| 3.11518 o--v| 0.36| 1.91518| 5.29104 o*
JSON
兼容的“富格式包装”数据也可以发送...... 这样WebRequest()
可以随意将 JSON
等格式的字符串发送到远程处理。
享受MQL4
世界。
答案 1 :(得分:0)
JSON:最好的方法是将数组转换(序列化)为JSON字符串,并使用 WebRequest()
将其发送出去。 JSON是广泛接受的格式,您的Web应用程序可以自行解析(反序列化)它们。
缺点是你需要为它编写一个序列化器
到目前为止,我只遇到过一个MQL4序列化程序:
https://www.mql5.com/en/code/11134