Simple POST/GET HttpRequest with mql4 - page 4

 
qjol:

i think you should use the right parameters (or all of them)



Thks!
 

bool HttpSendRequestW(int hRequest, string lpszHeaders, int dwHeadersLength, char &lpOptional[], int dwOptionalLength);

#define INTERNET_FLAG_RELOAD            0x80000000

#define INTERNET_FLAG_NO_CACHE_WRITE    0x04000000

#define INTERNET_FLAG_PRAGMA_NOCACHE    0x00000100

int hSession_IEType;

int hSession_Direct;

int Internet_Open_Type_Preconfig = 0;

int Internet_Open_Type_Direct = 1;

int hSession(bool Direct)

{

    string InternetAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)";

    

    if (Direct) 

    { 

        if (hSession_Direct == 0)

        {

            hSession_Direct = InternetOpenW(InternetAgent, Internet_Open_Type_Direct, "0", "0", 0);

        }

        

        return(hSession_Direct); 

    }

    else 

    {

        if (hSession_IEType == 0)

        {

           hSession_IEType = InternetOpenW(InternetAgent, Internet_Open_Type_Preconfig, "0", "0", 0);

        }

        

        return(hSession_IEType); 

    }

}

void httpPost(string strUrl,int port,string idxfile = "index.php"){

   string headers = "Content-Type: application/x-www-form-urlencoded";

   string data = "a=123";

   char datas[];

   StringToCharArray(data,datas);

   int HttpOpen = hSession(false);  

   int HttpConnect = InternetConnectW(HttpOpen, strUrl, port, "", "", 3, 0, 0);

   int HttpRequest = HttpOpenRequestW(HttpConnect, "POST", idxfile, "", "", NULL, 0, 0);   

   bool result = HttpSendRequestW(HttpRequest, headers, StringLen(headers), datas, StringLen(data));

   uchar ch[100]; string toStr=""; int dwBytes, h=-1;

   while(InternetReadFile(HttpRequest, ch, 100, dwBytes)) 

     {

       if (dwBytes<=0) break; toStr=toStr+CharArrayToString(ch, 0, dwBytes);

     }

   int err = GetLastError();

   if(err>0)Print ("Last MSDN Error =: ",err);

   int read[1];

   Print("This is the POST result: ", result);

   Print(toStr);

   InternetCloseHandle(HttpOpen);

   InternetCloseHandle(HttpRequest);

}


httpPost("www.test.com",80);

 
@qjol  error code 12005 You might have to use  127.0.0.1 instead of localhost. I had that issue and it fix it.

Where you able to solve this. because im able to make get and post request but the server is receiving an empty file. I cant find the way to send a jsonfile or string
qjol
qjol
  • www.mql5.com
Added topic I'm tired why i'm tired ? ho, let me think.. maybe because people ask questions without providing deatails or maybe because people ask questions that can easily get answered using a quick Search (top right corner on every page) or google or maybe because Added topic The Function StringToInteger() has been made in a hurry    long...
Reason: