#include <stdlib.mqh>
#include <stderror.mqh>
//+------------------------------------------------------------------+
//| DLL imports |
//+------------------------------------------------------------------+
#import "wininet.dll"
int InternetOpenA (
string lpszAgent,
int dwAccessType,
string lpszProxyName,
string lpszProxyBypass,
int dwFlags
);
int InternetConnectA(
int hInternet,
string lpszServerName,
int nServerPort,
string lpszUsername,
string lpszPassword,
int dwService,
int dwFlags,
int dwContext
);
int HttpOpenRequestA(int hConnect, string lpszVerb, string lpszObjectName, string lpszVersion,
string lpszReferer, string& lplpszAcceptTypes[], int dwFlags, int dwContext);
bool HttpSendRequestA(int handle, string headers, int headersLen, int& optional[], int optionalLen);
bool InternetReadFile(
int hFile,
string lpBuffer,
int dwNumberOfBytesToRead,
int &lpdwNumberOfBytesRead[]
);
bool InternetCloseHandle(
int hInternet
);
bool HttpAddRequestHeadersA(int handle, string headers, int headersLen, int modifiers);
#define AGENT "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)"
#define INTERNET_OPEN_TYPE_DIRECT 0
#define HTTP_ADDREQ_FLAG_ADD 0x20000000
#define HTTP_ADDREQ_FLAG_REPLACE 0x80000000
//InternetConnect - nServerPort
#define INTERNET_DEFAULT_FTP_PORT 21
#define INTERNET_DEFAULT_GOPHER_PORT 70
#define INTERNET_DEFAULT_HTTP_PORT 80
#define INTERNET_DEFAULT_HTTPS_PORT 443
#define INTERNET_DEFAULT_SOCKS_PORT 1080
#define INTERNET_INVALID_PORT_NUMBER 0
//InternetConnect - dwService
#define INTERNET_SERVICE_FTP 1
#define INTERNET_SERVICE_GOPHER 2
#define INTERNET_SERVICE_HTTP 3
//HttpOpenRequest - dwFlags
/*#define INTERNET_FLAG_CACHE_IF_NET_FAIL
#define INTERNET_FLAG_HYPERLINK
#define INTERNET_FLAG_IGNORE_CERT_CN_INVALID
#define INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
#define INTERNET_FLAG_KEEP_CONNECTION
#define INTERNET_FLAG_NEED_FILE
#define INTERNET_FLAG_NO_AUTH
#define INTERNET_FLAG_NO_AUTO_REDIRECT*/
#define INTERNET_FLAG_NO_CACHE_WRITE 0x04000000
/*#define INTERNET_FLAG_NO_COOKIES
#define INTERNET_FLAG_NO_UI*/
#define INTERNET_FLAG_PRAGMA_NOCACHE 0x00000100
#define INTERNET_FLAG_RELOAD 0x80000000
/*#define INTERNET_FLAG_RESYNCHRONIZE
#define INTERNET_FLAG_SECURE*/
#define INTERNET_FLAG_NO_UI 0x00000200
int start()
{
//string URL = "www.ronaldraygunforex.com/cloud/test.php";
wPost();
}
int init()
{
}
int deinit()
{
}
string wPost(){
int hInternetOpen = InternetOpenA (AGENT,0,"0","0",0);
Print("hInternetOpen: ", hInternetOpen);
//int hInternetConnect = InternetConnectA(hInternetOpen, "www.ronaldraygunforex.com", INTERNET_DEFAULT_HTTP_PORT, "", "", INTERNET_SERVICE_HTTP, 0, 0);
int hInternetConnect = InternetConnectA(hInternetOpen, "www.ronaldraygunforex.com", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, NULL);
Print("hInternetConnect: ", hInternetConnect);
string postdata = "input=test" ;
int dwOpenRequestFlags = // _IGNORE_REDIRECT_TO_HTTP |
// _IGNORE_REDIRECT_TO_HTTPS |
// INTERNET_FLAG_KEEP_CONNECTION |
// INTERNET_FLAG_NO_AUTO_REDIRECT |
// INTERNET_FLAG_NO_COOKIES |
// INTERNET_FLAG_NO_CACHE_WRITE |
INTERNET_FLAG_NO_UI |
INTERNET_FLAG_RELOAD;
string accept[] = {"Accept: text/*\r\n"};
//int hHttpOpenRequest = HttpOpenRequestA(hInternetConnect, "POST", "cloud/test.php", "HTTP/1.1", NULL, accept,
// INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD , 0);
int hHttpOpenRequest = HttpOpenRequestA(hInternetConnect, "POST", "cloud/test.php", "HTTP/1.1", NULL, accept,
dwOpenRequestFlags, NULL);
Print("hHttpOpenRequest: ", hHttpOpenRequest);
int request[];
int i = 0,
idx = 0,
r = 0,
len = 0
;
len = StringLen(postdata);
int theCharArray[];
ArrayResize(theCharArray, len);
for(int k=0;k<len;k++) {
string c = StringSubstr(postdata,k,1);
int asc = StringGetChar(c, 0);
theCharArray[k] = asc;
}
ArrayResize(request, len);
ArrayInitialize(request, 0);
//Print("len " + len);
for (i = 0; i < len; i++) {
//int charValue = FileReadInteger(_req, CHAR_VALUE);
int charValue = theCharArray[i];
//Print("charValue["+i+ "] " + charValue );
request[r] |= charValue << (idx * 8);
idx = (idx + 1) %4;
if (idx == 0) {
r++;
}
//Print("request["+r+"] " + request[r]);
}
bool bHttpSendRequestA = HttpSendRequestA(hHttpOpenRequest, "Content-type: application/x-www-form-urlencoded", -1, request, len );
Print("bHttpSendRequestA: ", bHttpSendRequestA);
string mContent = "";
int lpdwNumberOfBytesRead[1];
string sResult;
while (InternetReadFile(hHttpOpenRequest, mContent, 255, lpdwNumberOfBytesRead) != FALSE) {
if (lpdwNumberOfBytesRead[0] == 0) break;
sResult = StringConcatenate(sResult , StringSubstr(mContent, 0, lpdwNumberOfBytesRead[0]));
}
Print("sResult: ", sResult);
InternetCloseHandle(hHttpOpenRequest);
InternetCloseHandle(hInternetOpen);
InternetCloseHandle(hInternetConnect);
}