Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement