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

if (ダイレクト)

{

if (hSession_Direct == 0)

{

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

}

return(hSession_Direct);

それ以外の場合

{

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)); bool result = HttpSendRequestW(HttpRequest, headers, StringLen(headers));

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 を使用する必要があるかもしれません私はこの問題に直面し、それを修正しました。
なぜなら、私はgetとpostのリクエストをすることができますが、サーバーは空のファイルを受信しているからです。私は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...