教你如何在mql4中进行数据哈希运算 - 页 4 1234567 新评论 Alexandr Bryzgalov 2013.09.28 21:35 #31 Reshetov:实际上,在GET和POST请求中,所有的东西都是以:id=value的形式传递的,也就是说,参数名称和值是通过等号传递的。此外,所有非拉丁字母和数字的字符都用%(字符代码)进行编码。 那里有些不对劲,我想弄清楚,但没有用。 if (!HttpSendRequestA(hReq, NULL, 0, request, len)) { return (false); } Alexandr Bryzgalov 2013.09.28 21:37 #32 我的研究可能会让话题人物感到厌烦,如果你告诉我,我就去 修行。ZS:最终,代码将在比特上工作。 Alexandr Bryzgalov 2013.09.28 21:45 #33 谢谢你 Yury Reshetov 2013.09.29 07:08 #34 sanyooooook:你在问我吗? 见例:https://www.mql5.com/ru/articles/276//------------------------------------------------------------------ SendData bool SendData(string file, string mode) { string smb=Symbol(); string Head="Content-Type: application/x-www-form-urlencoded"; // заголовок string Path="/mt5swap/metaswap.php"; // путь к странице string Data="server="+AccountInfoString(ACCOUNT_SERVER)+ "&pair="+smb+ "&long="+DTS(SymbolInfoDouble(smb, SYMBOL_SWAP_LONG))+ "&short="+DTS(SymbolInfoDouble(smb, SYMBOL_SWAP_SHORT)); tagRequest req; // инициализация параметров if (mode=="GET") req.Init(mode, Path+"?"+Data, Head, "", false, file, true); if (mode=="POST") req.Init(mode, Path, Head, Data, false, file, true); return(INet.Request(req)); // посылаем запрос на сервер } Alexandr Bryzgalov 2013.09.29 07:37 #35 Reshetov: 见例:https://www.mql5.com/ru/articles/276即使这样也没有用。#import "wininet.dll" int InternetAttemptConnect(int x); int InternetOpenA(string sAgent, int lAccessType, string sProxyName="", string sProxyBypass="", int lFlags = 0); int InternetConnectA(int hInternet, string lpszServerName, /*WORD*/ 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); int HttpSendRequestA(int hRequest, string lpszHeaders, int dwHeadersLength, int& lpOptional[], int dwOptionalLength); int InternetCloseHandle(int hInet); #import #define INTERNET_OPEN_TYPE_PRECONFIG 0 // use registry configuration #define INTERNET_FLAG_KEEP_CONNECTION 0x00400000 // use keep-alive semantics #define INTERNET_SERVICE_HTTP 3 //+------------------------------------------------------------------+ int start() { string Host="https://secure.indx.ru"; string Path="https://secure.indx.ru/api/v1/tradejson.asmx"; // читаем данные int h=FileOpen("text.txt", FILE_BIN|FILE_READ); if (h<0) return; FileSeek(h, 0, SEEK_SET); int size=MathFloor(FileSize(h)/4); int data[], i=0; ArrayResize(data, size); // изменили размер while (!FileIsEnding(h)) { data[i]=FileReadInteger(h, LONG_VALUE); i++; } FileClose(h); // // выводим прочитанный массив для проверки string st=""; for (i=0; i<size; i++) { st=st+CharToStr(data[i]&255); st=st+CharToStr(data[i]>>8&255); st=st+CharToStr(data[i]>>16&255); st=st+CharToStr(data[i]>>24&255); } Print("Размер файла: "+size*4+" байт"); Print("Данные: "+st); int hInternetSession, hConnectHandle, hResourceHandle, result; if(InternetAttemptConnect(0)!=0) { Print("error InternetAttemptConnect"); return(0); } hInternetSession=InternetOpenA("Microsoft Internet Explorer", INTERNET_OPEN_TYPE_PRECONFIG, "", "", 0); if (hInternetSession<=0) { Print("error InternetOpenA()"); return(0); } hConnectHandle=InternetConnectA(hInternetSession, Host, 80, "", "", INTERNET_SERVICE_HTTP, 0, 0); if (hConnectHandle<=0) { Print("error InternetConnect()"); return(0); } hResourceHandle=HttpOpenRequestA(hConnectHandle, "POST", Path, "", "", "", INTERNET_FLAG_KEEP_CONNECTION, 0); if (hResourceHandle<=0) { Print("error HttpOpenRequest()"); return(0); } result=HttpSendRequestA(hResourceHandle, "Content-Type: application/x-www-form-urlencoded", 47, data, size); Print(result); if (result<=0) { Print("error HttpSendRequestA()"); return(0); } InternetCloseHandle(hResourceHandle); InternetCloseHandle(hConnectHandle); InternetCloseHandle(hInternetSession); } //+------------------------------------------------------------------+ Alexandr Bryzgalov 2013.09.29 09:50 #36 Reshetov: 见例:https://www.mql5.com/ru/articles/276我认为json在这里也行不通。用默认参数运行它,它不工作,在post函数上出错。HttpSendRequestwW Alexandr Bryzgalov 2013.09.29 09:52 #37 我认为问题出在这个功能上,从评论 来看,我不是唯一一个不能工作的人。 --- 2013.09.29 10:19 #38 sanyooooook: 在我看来,问题出在这个功能上,从评论 来看,我不是唯一一个无法工作的人。https://www.mql5.com/ru/articles/276 Alexandr Bryzgalov 2013.09.29 14:33 #39 sergeev:https://www.mql5.com/ru/articles/276我看了一下文章,它发送的内容是:server=Metaquotes&pair=EURUSD&bid=1.4512&time=13286794我需要以json格式发送,据我所知,所有的东西都是一样的,但不是红色字符串,而是带有自己的参数的这个。{"Login":"","Wmid":"","Culture":"","Signature":""}如果发送的话,至少我会得到一个请求无效的消息,但我得到的却是沉默。 --- 2013.09.29 16:30 #40 sanyooooook:我看了一下文章,它发送的内容是:server=Metaquotes&pair=EURUSD&bid=1.4512&time=13286794我需要以json格式发送,据我所知,所有的东西都是一样的,但不是红色字符串,而是带有自己的参数的这个。{"Login":"","Wmid":"","Culture":"","Signature":""}我希望你不要把发送方式(POST)和它的数据格式(在你的例子中是json)混淆。如果发送会去,至少我会得到一个要求不正确的书信,但代替了这种沉默。萨沙,把自己的某种查尔斯,你为什么这么痛苦 :) 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
实际上,在GET和POST请求中,所有的东西都是以:id=value的形式传递的,也就是说,参数名称和值是通过等号传递的。此外,所有非拉丁字母和数字的字符都用%(字符代码)进行编码。
那里有些不对劲,我想弄清楚,但没有用。
我的研究可能会让话题人物感到厌烦,如果你告诉我,我就去 修行。
ZS:最终,代码将在比特上工作。
你在问我吗?
见例:https://www.mql5.com/ru/articles/276
即使这样也没有用。
见例:https://www.mql5.com/ru/articles/276
我认为json在这里也行不通。
用默认参数运行它,它不工作,在post函数上出错。
在我看来,问题出在这个功能上,从评论 来看,我不是唯一一个无法工作的人。
https://www.mql5.com/ru/articles/276
我看了一下文章,它发送的内容是:server=Metaquotes&pair=EURUSD&bid=1.4512&time=13286794
我需要以json格式发送,据我所知,所有的东西都是一样的,但不是红色字符串,而是带有自己的参数的这个。{"Login":"","Wmid":"","Culture":"","Signature":""}
如果发送的话,至少我会得到一个请求无效的消息,但我得到的却是沉默。
我看了一下文章,它发送的内容是:server=Metaquotes&pair=EURUSD&bid=1.4512&time=13286794
我需要以json格式发送,据我所知,所有的东西都是一样的,但不是红色字符串,而是带有自己的参数的这个。{"Login":"","Wmid":"","Culture":"","Signature":""}
我希望你不要把发送方式(POST)和它的数据格式(在你的例子中是json)混淆。
如果发送会去,至少我会得到一个要求不正确的书信,但代替了这种沉默。
萨沙,把自己的某种查尔斯,你为什么这么痛苦 :)