mql4でデータをハッシュ化する方法を教える - ページ 4 1234567 新しいコメント Alexandr Bryzgalov 2013.09.28 19:35 #31 Reshetov:実際、GETとPOSTのどちらのリクエストでも、すべてはid=valueという形式で渡されます。つまり、パラメータ名と値が等号で結ばれています。また、ラテン文字と数字以外の文字は%(文字コード)でコード化されます。 何かおかしいな、と思って調べているのですが、うまくいきません。 if (!HttpSendRequestA(hReq, NULL, 0, request, len)) { return (false); } Alexandr Bryzgalov 2013.09.28 19:37 #32 私はおそらく、私の研究でトピックスタッターを退屈させている、あなたが私に言うならば、私は修道院に 行くでしょう。ZS: 最終的には、コードがビット上で動作するようになります。 Alexandr Bryzgalov 2013.09.28 19:45 #33 ありがとうございました。 Yury Reshetov 2013.09.29 05: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 05: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 07:50 #36 Reshetov: 例参照: https://www.mql5.com/ru/articles/276ここでもjsonは使えないと思います。デフォルトのパラメータで実行したところ、うまくいきません。HttpSendRequestwW Alexandr Bryzgalov 2013.09.29 07:52 #37 で、問題はこの関数にあると思います。コメントから 判断すると、この関数が動作しないのは私だけではなさそうです。 --- 2013.09.29 08:19 #38 sanyooooook:コメントから 判断すると、問題はこの関数にあるようです。https://www.mql5.com/ru/articles/276 Alexandr Bryzgalov 2013.09.29 12: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 14:30 #40 sanyooooook:記事を見ると、server=Metaquotes&pair=EURUSD&bid=1.4512&time=13286794の ようなものが送信されています。私はそれをjsonフォーマットで送信する必要があります。 私が理解する限り、すべてが同じですが、赤い文字列の代わりに、独自のパラメータを持つこのです。{"Login":"","Wmid":"","Culture":"","Signature":""}送信方法(POST)とデータ形式(あなたの場合、json)を混同しないでほしい。送信は行くとして、少なくとも私はこの沈黙の代わりに、要求が正しくないというしっぺ返しを食らうだろう。サーシャ、自分自身にシャルルのようなものを置いて、なぜそんなに苦しんでいるのか......。) 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
実際、GETとPOSTのどちらのリクエストでも、すべてはid=valueという形式で渡されます。つまり、パラメータ名と値が等号で結ばれています。また、ラテン文字と数字以外の文字は%(文字コード)でコード化されます。
何かおかしいな、と思って調べているのですが、うまくいきません。
私はおそらく、私の研究でトピックスタッターを退屈させている、あなたが私に言うならば、私は修道院に 行くでしょう。
ZS: 最終的には、コードがビット上で動作するようになります。
私に聞いているのですか?
例参照: https://www.mql5.com/ru/articles/276
でもうまくいかない。
例参照: https://www.mql5.com/ru/articles/276
ここでもjsonは使えないと思います。
デフォルトのパラメータで実行したところ、うまくいきません。
コメントから 判断すると、問題はこの関数にあるようです。
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)を混同しないでほしい。
送信は行くとして、少なくとも私はこの沈黙の代わりに、要求が正しくないというしっぺ返しを食らうだろう。
サーシャ、自分自身にシャルルのようなものを置いて、なぜそんなに苦しんでいるのか......。)