質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

受付中

【MQL4】wininet.dllを使って、gasのappにpost通信がしたいです

t-_.
t-_.

総合スコア53

MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

0回答

0評価

0クリップ

125閲覧

投稿2022/05/26 06:21

wininet.dllを使って、gasのpost通信をしたいです。

gasの方は、htmlファイルで確認して、post通信できていました。
そもそも、mt4からの通信は行ってないです。

エラーは、「ページが見つかりません」となっています。
詳しくは以下の通りです。

error

<!DOCTYPE html><html lang="ja"> <head> <meta name="description" content="ウェブ ワープロ、プレゼンテーション、スプレッドシート"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"> <link rel="shortcut icon" href="//docs.google.com/favicon.ico"> <title>ページが見つかりません</title> <meta name="referrer" content="origin"> <link href="//fonts.googleapis.com/css?family=Product+Sans" rel="stylesheet" type="text/css" nonce="UhiRvDbc7RMIj55gUC_5gw"><style nonce="UhiRvDbc7RMIj55gUC_5gw"> /* Copyright 2022 Google Inc. All Rights Reserved. */ ...

mql4

#property strict #property indicator_chart_window #import "wininet.dll" #define INTERNET_OPEN_TYPE_DIRECT 0 #define AGENT "MetaTrader 5 Terminal ss Auth 2022" #define READURL_BUFFER_SIZE 100000 #define INTERNET_DEFAULT_HTTPS_PORT 443 #define INTERNET_DEFAULT_HTTP_PORT 80 #define INTERNET_SERVICE_HTTP 3 #define INTERNET_FLAG_RELOAD -2147483648 int InternetOpenW( string sAgent, int lAccessType, string sProxyName="", string sProxyBypass="", int lFlags=0 ); int InternetOpenA( string lpszAgent, int dwAccessType, string lpszProxy, string lpszProxyBypass , int dwFlags); int InternetOpenUrlW( int hInternetSession, string sUrl, string sHeaders="", int lHeadersLength=0, int lFlags=0, int lContext=0 ); int InternetConnectW( int iHandle, string, int, string, string, int, int, int ); int InternetReadFile( int, uchar &arr[], int, int &arr[] ); int InternetCloseHandle( int hInet ); int HttpOpenRequestW( int iConnect, string lpszVerb, string lpszObjectName, string lpszVersion, string lpszReferrer, string lplpszAcceptTypes, int dwFlags, int dwContext ); bool HttpSendRequestW( int iRequest, string& lpszHeaders, int dwHeadersLength, uchar& lpOptional[], int dwOptionalLength ); #import //https://script.google.com/macros/s/AKfycbwn9nAniZRpsheIzHcSsjO8Q01NW61pjzIMwRN4TxorC-m3k8LqGdfr65egboaN-Bh35A/exec string post_request() { int lReturn[1]; uchar arrReceive[]; uchar data[]; //string strUrl = "https://script.google.com"; //string header = "Content-Type: text/plain;charset=utf-8"; //string header = "Content-Type: application/x-www-form-urlencoded"; string header = "Content-Type: application/json"; string domain = "script.google.com"; string methods = "POST"; string http_type = "HTTP/1.1"; string request_url = "macros/s/AKfycbwn9nAniZRpsheIzHcSsjO8Q01NW61pjzIMwRN4TxorC-m3k8LqGdfr65egboaN-Bh35A/exec"; string mydata = "{\"value\": \"AAA\"}"; StringToCharArray( mydata, data ); int hSession = InternetOpenW( AGENT, INTERNET_OPEN_TYPE_DIRECT, "0", "0", 0 ); int hConnect = InternetConnectW( hSession, domain, INTERNET_DEFAULT_HTTPS_PORT, NULL, NULL, 2, 0, 0 ); int hRequest = HttpOpenRequestW( hConnect, methods, request_url, http_type, NULL, NULL, INTERNET_FLAG_RELOAD, 0 ); bool check = HttpSendRequestW( hRequest, header, StringLen( header ), data, ArraySize( data ) - 1 ); if( !check ) Alert( "check : ", check ); Alert( "mydata : ", mydata ); ArrayResize( arrReceive, READURL_BUFFER_SIZE + 1 ); int success = InternetReadFile( hRequest, arrReceive, READURL_BUFFER_SIZE, lReturn ); string errmes = "Authentication failure - Error connecting to server : by ss"; if( success == 0 ){ InternetCloseHandle( hSession ); //return errmes; } string strThisRead = CharArrayToString( arrReceive, 0, ArraySize( arrReceive ), CP_UTF8 ); InternetCloseHandle( hSession ); Alert( strThisRead ); return "ok"; } int OnInit() { Alert( post_request() ); return INIT_SUCCEEDED; } void OnDeinit( const int reason ) { } int OnCalculate( const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[] ) { return rates_total; }

gas

function get_sheet() { const SHEET_NAME = "シート1" var active_st = SpreadsheetApp.getActiveSpreadsheet(); var sheet = active_st.getSheetByName( SHEET_NAME ); return sheet; } function doPost(e) { Logger.log(e); /* var name = e.parameter.name; var hobby = e.parameter.hobby; var sheet = get_sheet(); sheet.appendRow( [name, hobby] ) return ContentService.createTextOutput('私の名前は'+name+'、趣味は'+hobby); */ var params = JSON.parse(e.postData.getDataAsString()); // ※ var value = params.value; // => "AAA"が取れる // 何らかの処理... var output = ContentService.createTextOutput(); output.setMimeType(ContentService.MimeType.JSON); output.setContent(JSON.stringify({ message: "success!" })); return output; }

以上、よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。