нечитаемые символы, и экранировка кавычек. надо обработать еще на стадии массива
нормально все получает по этой строке, недавно делал реализацию получения новостей с подобной ссылкой.
вот так преобразую все в строку:
sBuffer=CharArrayToString(result,0,WHOLE_ARRAY,CP_UTF8); //сохраним в UTF8
вот ссылка
string sLink="https://sslecal2.forexprostools.com/?columns=exc_currency,exc_importance&countries=25,54,34,6,37,107,55,24,89,72,71,22,17,51,33,10,35,97,96,103,109,21,43,60,38,56,36,90,112,26,9,12,63,4,5&calType=day&timeZone=56&lang=1";
вот функция для чтения
bool ReadWebPage(bool &bNewDay,string sWWW,string &shtml,string sWebRequest) { if(!bNewDay) { if(ArraySize(news)!=0) return true; } string cookie=NULL,headers; int res; char post[],result[]; shtml=""; ResetLastError(); while(!IsStopped()) { int timeout=5000; //--- timeout менее 1000 (1 сек.) недостаточен при низкой скорости Интернета сделан таймаут в 5 секунд //urlencode( res=WebRequest("GET",sWWW,cookie,NULL,timeout,post,0,result,headers); //--- проверка ошибок if(res==4060) { Print("Ошибка в WebRequest. Код ошибки = ",GetLastError()); //--- возможно, URL отсутствует в списке, выводим сообщение о необходимости его добавления MessageBox("Необходимо добавить адрес: '"+sWebRequest+"' в список разрешенных URL во вкладке 'Советники'","Ошибка",MB_ICONINFORMATION); break; } else { string sBuffer=""; sBuffer=CharArrayToString(result,0,WHOLE_ARRAY,CP_UTF8); //сохраним в UTF8 //выдернем из текста страницы нужную таблицу //<table id="ecEventsTable" class="genTable closedTable ecoCalTable"> StringReplace(sBuffer,"\"",""); //<table id="ecEventsTable" class="genTable closedTable ecoCalTable"> int iStart=StringFind(sBuffer,"<table id=ecEventsTable class=genTable closedTable ecoCalTable>"); // Print(ArraySize(result)," ",iStart," ",sBuffer,GetLastError()); if(iStart>=0) { sBuffer=StringSubstr(sBuffer,iStart); int iEnd=StringFind(sBuffer,"</table>"); //Print(iEnd); sBuffer=StringSubstr(sBuffer,0,iEnd+8); } //--- сохраняем содержимое массива result[] в файл shtml=sBuffer; if(sBuffer!="") return true; Sleep(1000); //таймаут при ошибках чтения } } return false; }
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте Гуру, возникла проблема и никак не могу побороть её. Необходимо преобразовать загрузку html страницы через WebRequest в строку, но в итоге обрезанные данные. Код:
urldata = "http://ec.forexprostools.com/?columns=exc_currency,exc_importance&category=_employment,_economicActivity,_inflation,_credit,_centralBanks,_confidenceIndex,_balance,_Bonds&importance=1,2,3&countries=25,6,37,72,22,17,39,10,35,43,60,36,110,26,12,4,5&calType=week&timeZone=15&lang=1";
string cookie=NULL,headers;
char post[],result[];
int res;
ResetLastError();
int timeout=5000;
res=WebRequest("GET",urldata,cookie,NULL,timeout,post,0,result,headers);
if(res==-1)
{
Print("Error in WebRequest. Error code =",GetLastError());
}
else
{
news_data = CharArrayToString(result);
}
В ответе всего несколько строк, вместо всей страницы. В чем может быть быть проблема?