//+------------------------------------------------------------------+ //| NewsAPI_test.mq5 | //| Copyright 2017, ufranco | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2017, ufranco" #property link "https://www.mql5.com" #property version "1.00" #property script_show_inputs #define BASE_URL "https://newsapi.org/v1/" #define SRCE "sources?" #define ATCLE "articles?source=" #define API_KEY "&apiKey=484c84eb9765418fb58ea936908a47ac" //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ enum mode { sources, articles }; input string sFilename="sorce.txt"; input mode Mode=sources; input string parameters="language=en&category=business&country=us"; int timeout=5000; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- TestWebRequest(); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| TestWebRequest | //+------------------------------------------------------------------+ void TestWebRequest(void) { string cookie=NULL,headers; char post[],result[]; int res; string _url; //--- switch(Mode) { case sources: _url=BASE_URL+SRCE+parameters; break; case articles: _url=BASE_URL+ATCLE+parameters+API_KEY; break; } //--- ResetLastError(); res=WebRequest("GET",_url,cookie,NULL,timeout,post,0,result,headers); if(res==-1) { Alert("Could not download file"); return; } else Print("Download success"); string pStream=CharArrayToString(result,0,-1,CP_UTF8); int hFile=FileOpen(sFilename,FILE_BIN|FILE_WRITE); if(hFile==INVALID_HANDLE) { Print("Invalid file handle"); return; } FileWriteString(hFile,pStream); FileClose(hFile); return; } //+------------------------------------------------------------------+