178 lines
3.2 KiB
Plaintext
178 lines
3.2 KiB
Plaintext
///////////////////////////////////////////////////////
|
|
//
|
|
// SaherElm IT Center MQL5 Http Library
|
|
// ------------------------------------------
|
|
// Name: XHttp
|
|
// Description: provide http communication
|
|
// abilities ...
|
|
//
|
|
//
|
|
// Maintainer:
|
|
// ------------
|
|
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
|
|
//
|
|
//////////////////////////////////////////////////////
|
|
//
|
|
// Global Properties ...
|
|
#property library
|
|
#property copyright "Copyright 2023, SaherElm IT Center"
|
|
#property link "https://www.saherelm.ir"
|
|
#property version "1.00"
|
|
#property strict
|
|
|
|
//
|
|
// START Model Definition ...
|
|
//
|
|
enum X_HTTP_METHOD
|
|
{
|
|
X_HTTP_GET,
|
|
X_HTTP_POST
|
|
};
|
|
//
|
|
// END Model Definition ...
|
|
//
|
|
|
|
//
|
|
// START Inputs ...
|
|
//
|
|
//
|
|
// END Inputs ...
|
|
//
|
|
|
|
//
|
|
// START Global Definitions: Variables, Properties and etc ...
|
|
//
|
|
//
|
|
// END Global Definitions: Variables, Properties and etc ...
|
|
//
|
|
|
|
//
|
|
// START Provided Functions ...
|
|
//
|
|
//
|
|
// Initial Library if required ...
|
|
bool OnInInitHttpLibrary()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
//
|
|
// DeInitial Library if required ...
|
|
void OnDeinitHttpLibrary()
|
|
{
|
|
}
|
|
|
|
//
|
|
// Convert enum to String ...
|
|
string ToString(X_HTTP_METHOD method)
|
|
{
|
|
//
|
|
string result = "";
|
|
|
|
//
|
|
switch (method)
|
|
{
|
|
//
|
|
case X_HTTP_GET:
|
|
result = "GET";
|
|
break;
|
|
|
|
//
|
|
case X_HTTP_POST:
|
|
result = "POST";
|
|
break;
|
|
}
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
// Send Global Request ...
|
|
int SendRequest(
|
|
X_HTTP_METHOD method, // Httm Request Method
|
|
const string url, // Server Address
|
|
const string headers, // Headers providing
|
|
const char &payload[], // the Data which needs to Send
|
|
char &response[], // Response of request
|
|
string responseHeaders, // Response Headers
|
|
int timeout = 500 // Timeout for response default is 500
|
|
)
|
|
{
|
|
//
|
|
int result = -1;
|
|
|
|
//
|
|
string strMethod = ToString(method);
|
|
if (StringLen(strMethod) == 0) {
|
|
return result;
|
|
}
|
|
|
|
//
|
|
result = WebRequest(
|
|
strMethod,
|
|
url,
|
|
headers,
|
|
timeout,
|
|
payload,
|
|
response,
|
|
responseHeaders
|
|
);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
// Get Request ...
|
|
int GetRequest(
|
|
const string url, // Server Address
|
|
const string headers, // Headers providing
|
|
const char &payload[], // the Data which needs to Send
|
|
char &response[], // Response of request
|
|
string responseHeaders, // Response Headers
|
|
int timeout = 500 // Timeout for response default is 500
|
|
) {
|
|
//
|
|
int result = SendRequest(
|
|
X_HTTP_GET,
|
|
url,
|
|
headers,
|
|
payload,
|
|
response,
|
|
responseHeaders,
|
|
timeout
|
|
);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
// Post Request ...
|
|
int PostRequest(
|
|
const string url, // Server Address
|
|
const string headers, // Headers providing
|
|
const char &payload[], // the Data which needs to Send
|
|
char &response[], // Response of request
|
|
string responseHeaders, // Response Headers
|
|
int timeout = 500 // Timeout for response default is 500
|
|
) {
|
|
//
|
|
int result = SendRequest(
|
|
X_HTTP_POST,
|
|
url,
|
|
headers,
|
|
payload,
|
|
response,
|
|
responseHeaders,
|
|
timeout
|
|
);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
//
|
|
// END Provided Functions ...
|
|
//
|