I'm trying to write an install script for an MT4 expert advisor. Part of the installation process includes adding an allowed WebRequest URL. I assume this is saved as a setting in C:\Users\{User ID}\AppData\Roaming\MetaQuotes\Terminal\{Terminal ID}\config\experts.ini
as I can see the allowed URLs there, but I cannot parse this data as no editor I have can decode it. Is this file parsed using a proprietary encoding or is it encrypted in some way? Any help here would be appreciated.
The only solution I could think of to address this issue was to create my own HTTP web request library, here, and use it to submit HTTP requests.
#include <mql-http/Request.mqh>
#include <mql5-json/Json.mqh>
int SendWebRequest(const object request) {
string body = ConvertToJSON(request); // You'll have to write your own JSON converter
HttpRequest req("POST", m_send_addr, body);
req.AddHeader("Accept", "application/json");
req.AddHeader("Authorization", m_auth_header);
HttpResponse resp;
int errCode = req.Send(resp);
if (errCode != 0) {
return errCode;
} else if (resp.StatusCode != 200) {
return resp.StatusCode;
} else {
return 0;
}
}
At the moment this is pretty bare-bones but it's open-source so feel free to modify and contribute.