使用mql4的简单POST/GET HttpRequest - 页 4

 
qjol:

我认为你应该使用正确的参数(或所有的参数)。



谢谢!
 

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(兼容;MSIE 6.0;Windows NT 5.1;Q312461)"。

如果(Direct)

{

如果(hSession_Direct == 0)

{

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

}

return(hSession_Direct);

}

否则

{

如果(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("这是POST的结果:", result);

Print(toStr)。

InternetCloseHandle(HttpOpen)。

InternetCloseHandle(HttpRequest)。

}


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

 
@qjol 错误代码12005 你可能要用127.0.0.1而不是localhost。我遇到过这个问题,但它解决了。

在哪里 能够解决这个问题?因为我能够进行获取和发布请求,但服务器收到的是一个空文件。我找不到发送json文件或字符串的方法。
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...