기고글 토론 "인터넷을 통한 터미널 간 데이터 교환에 WinInet.dll 사용하기" - 페이지 4

 
좋아, 마음이 바뀌었어. 메타쿼츠의 이 병신 같은 멍청이들이 전략 테스터에서 웹 요청 함수를 사용하는 것을 금지하기 때문에 이 객체는 시도해 볼 가치가 있습니다.
 

mt5 x64에서 실행할 수 있었습니다(메타그래버 스크립트가 오류 없이 작동).

internetlib.mqh 클래스 ::request의 코드 변경

// 요청 설명자 생성
   string null = NULL;
   hRequest=HttpOpenRequestW(Connect,Verb,Object,Vers,nill,null,FLAG_KEEP_CONNECTION|FLAG_RELOAD|FLAG_PRAGMA_NOCACHE,0);
 

그러나 인터넷의 요청은 dll이 금지되어 있기 때문에 마켓 제품에서 사용할 수 없다는 것을 알고 있습니다.

dll 자체 없이 #import "wininet.dll"을 사용할 수 있는 다른 방법은 없나요?

 
Yurij Izyumov:

그러나 인터넷의 요청은 dll이 금지되어 있기 때문에 마켓 제품에서 사용할 수 없다는 것을 알고 있습니다.

dll 자체없이 #import "wininet.dll"을 사용할 수있는 다른 방법은 없나요?

이미 오랫동안 WebRequest가 있으며 마켓에서 허용됩니다.
 

아래 코드에서는 URL 변수를 경로로 대체했는데, URL은 ParseURL 함수의 외부 변수이기 때문입니다:

void ParseURL(문자열 경로,문자열 &host,문자열 &request,문자열 &filename)

{

host=StringSubstr(path,7);

// remove

int i=StringFind(host,"/");

요청=StringSubstr(host,i);

host=StringSubstr(host,0,i);

string file="";

for(i=StringLen(path)-1; i>=0; i--)

if(StringSubstr(path,i,1)=="/")

{

file=StringSubstr(path,i+1);

break;

}

if(file!="") filename=file;

}

 

안녕하세요!

XAMPP를 사용하여 php와 아파치를 설치했습니다. 하지만 MQL5에서 GET을 통해 페이지에 액세스할 수 없습니다.

아래는 반환되는 오류입니다:

접근이 금지되었습니다!

요청된 개체에 액세스할 수 있는 권한이 없습니다.

해당 개체가 읽기 보호되어 있거나 서버에서 읽을 수 없습니다.

이 문제를 해결하는 방법을 아는 사람이 있나요?
 
Andrey Khatimlianskii:
이미 오랫동안 WebRequest가 있으며 시장에서 허용됩니다.

이미 시장에 문제가 있으며(mcl5에서 액세스가 차단됨) 지표에서 작동하지 않습니다....

 
Vladimir Pastushak:

이미 시장에 문제가 있으며 (µl5에서 액세스가 닫힘) 지표에서 작동하지 않습니다...

WebRequest는 지표에서 작동하지 않았습니다. 개발자가 프로그램을 작성할 때 WebRequest를 사용할지 여부를 결정할 수 있기 때문에 거부 이유는 명확하지 않습니다. 우리는 21세기 WinInet.dll에서 그것을 만들어냅니다.
 
Vladimir Pastushak:

이미 마트에서 문제가 있고 (mcl5 액세스가 닫혀 있음) 지표에서 작동하지 않습니다 ...

시장의 문제는 무엇입니까?

그리고 왜 µl5에 액세스해야합니까?


비탈리 무지첸코:
웹리퀘스트는 인디케이터에서 작동하지 않습니다. 거부 이유는 개발자가 프로그램을 작성할 때 WebRequest를 사용할지 여부를 결정할 수 있기 때문에 명확하지 않습니다. 우리는 21세기 WinInet.dll에서 그것을 만들어냅니다.

그 이유는 매우 간단합니다. 표시기는 인터페이스 스레드에서 작동하며 일시 중지하면 전체 차트가 일시 중지됩니다. 그리고 아무도 웹 요청의 즉각적인 실행을 보장 할 수 없습니다.

아마도 첫 번째 호출이 단순히 데이터를 요청하고 후속 호출이이를 사용하는 경우 CopyRates와 유사한 특수 모드를 만들 수 있습니다. 하지만 MQ가 웹 요청에 대한 이러한 버팀목을 만들지는 않을 것 같고, 스크립트 등을 통해 직접 만들어야 할 것 같습니다.

 
Andrey Khatimlianskii:

시장의 문제점은 무엇인가요?

그리고 왜 µl5에서 액세스해야 할까요?


그 이유는 매우 간단합니다. 인디케이터는 인터페이스 스레드에서 작동하며 일시 중지하면 전체 차트가 일시 중지됩니다. 그리고 누구도 웹 요청의 즉각적인 실행을 보장할 수 없습니다.

아마도 첫 번째 호출이 단순히 데이터를 요청하고 후속 호출이이를 사용하는 CopyRates와 유사한 특수 모드를 만들 수 있습니다. 하지만 MQ가 웹 요청에 대한 버팀목을 만들지는 않을 것 같고, 스크립트 실행 등을 통해 우리가 직접 만들어야 할 것 같습니다.

런타임에 일정을 일시 중단하면 무엇이 문제인가요? 반복합니다:"개발자가 프로그램을 작성할 WebRequest를 사용할지 여부를결정할 수 있습니다 ."