당신이 설명하는 문제의 성격에서 나는 당신이 B600을 사용하고 있다고 추측합니다 >
예를 들어 UNICODE를 사용하여 코드 를 수정 해야 합니다.
int InternetOpen W (...
(ANSI)
int InternetOpen A (...
여러분, 안녕하세요,
이 주제가 여러 번 논의되었다는 것을 알고 있습니다. 그러나 주제에 대해 찾은 모든 기사는 불행히도 너무 복잡하거나 너무 오래되어 오류 메시지를 생성합니다. 따라서 간단한 POST/GET 요청을 수행하는 스크립트를 만들 수 없었습니다.
따라서 POST 및 GET 요청을 서버에 보내고 싶습니다. 대상 파일은 간단한 php 파일입니다.
이것은 https://www.mql5.com/en/code 를 기반으로 생성한 첫 번째 테스트 스크립트입니다.
불행히도 요청이 성공하지 못했음을 의미하는 결과 "0"을 받습니다. 하지만 이유를 알 수 없습니다.
당신이 나를 도울 수 있기를 바랍니다.
감사해요,
알렉스
https://www.mql5.com/en/forum/149321
확인. 빠른 답변 감사합니다. 아직 테스트는 해보지 않았지만 좀 더 자세히 알려주실 수 있으신가요? 질문드려 죄송합니다만 B600이 무엇인가요? 또한 http://msdn.microsoft.com/en-us/library/windows/desktop/aa385098(v=vs.85).aspx 에서 "InternetOpenW" 또는 "InternetOpenA" 기능에 대한 설명서를 찾을 수 없습니다.
"...A"와 "...W"는 어디에서 왔습니까?
도와 줘서 고맙다.
하지만 B600은 무엇입니까?
버전 600 이상(MetaTrader) = 빌드 600 이상 = B600 >
"...A"와 "...W"는 어디에서 왔습니까?
나는 당신이 읽을 수 있기를 바랍니다
귀하가 제공한 링크의 동일한 페이지에서 ( 하단에 ) 다음과 같이 말합니다.
유니코드 및 ANSI 이름 InternetOpenUrlW (유니코드) 및 InternetOpenUrlA (ANSI)
따라서 실제로 POST/GET 요청의 경우 "InternetOpenUrlW" 기능이 전혀 필요하지 않다고 생각합니다.
이것은 여전히 작동하지 않는 현재 코드입니다 :-( :
#import "Wininet.dll" int InternetOpenW( string , int , string , string , int ); int InternetConnectW( int , string , int , string , string , int , int , int ); int InternetOpenUrlW( int , string , string , int , int , int ); int InternetCloseHandle( int ); int HttpOpenRequestA ( int , string , string , string , string , string & AcceptTypes[], int , int ); bool HttpSendRequestW( int , string , int , string , int ); #import int OnInit () { string headers = "Content-Type: application/x-www-form-urlencoded" ; string data = "" ; string acceptTypes[ 1 ] = { "*/*" }; int HttpOpen = InternetOpenW( "HTTP_Client_Sample" , 1 , NULL , NULL , 0 ); int HttpConnect = InternetConnectW(HttpOpen, "http://localhost/tradex" , 7777 , NULL , NULL , 3 , 0 , 1 ); int HttpRequest = HttpOpenRequestA(HttpConnect, "POST" , "/index.php" , "HTTP/1.1" , NULL , acceptTypes, 0 , 1 ); string result = HttpSendRequestW(HttpRequest, headers, StringLen (headers), data, StringLen (data)); int read[ 1 ]; Print ( "This is the POST result: " + result); return ( 0 ); }
안녕하세요 qjool님
매우 도움이 되는 링크를 주셔서 감사합니다. URL에서 GET 데이터가 작동하는 것처럼 보이지만 여전히 데이터를 POST 하는 방법을 모르겠습니다. 스크립트는 " HttpOpenRequestW" 기능을 정의하지만 사용하지 않습니다. 또한 스크립트는 잘 작동하는 데이터만 검색합니다.
그러나 여전히 어떻게 데이터를 POST 할 수 있습니까? " HttpOpenRequestW "와 함께 작동해야 하지만 오류 메시지가 표시되기 전에 이미 게시한 것처럼 " 'Wininet.dll'의 0x0000007B에 대한 액세스 위반 읽기" 및 " HttpOpenRequestA"가 분명히 작동하지 않습니다.
당신이 도울 수 있기를 바랍니다.
귀하의 코드를 확인하기로 결정하고 수정했지만 결과 = false이므로 확인했는데 오류 코드 12005가 표시되고 Microsoft의 오류 코드 목록에 따르면 의미합니다.
ERROR_INTERNET_INVALID_URL
12005
URL이 잘못되었습니다.
#import "Wininet.dll" int InternetOpenW( string , int , string , string , int ); int InternetConnectW( int , string , int , string , string , int , int , int ); int InternetOpenUrlW( int , string , string , int , int , int ); int InternetReadFile( int , string , int , int & OneInt[]); int InternetCloseHandle( int ); int HttpOpenRequestW( int , string , string , string , string , string & AcceptTypes[], int , int ); bool HttpSendRequestW( int , string , int , string , int ); #import #import "kernel32.dll" int GetLastError( void ); #import string headers = "Content-Type: application/x-www-form-urlencoded" ; string data = "" ; string acceptTypes[ 1 ] = { "*/*" }; int HttpOpen = InternetOpenW( "HTTP_Client_Sample" , 1 , "" , "" , 0 ); int HttpConnect = InternetConnectW(HttpOpen, "http://localhost/tradex" , 7777 , "" , "" , 3 , 0 , 1 ); int HttpRequest = HttpOpenRequestW(HttpConnect, "POST" , "/index.php" , "HTTP/1.1" , "" , acceptTypes, 0 , 1 ); bool result = HttpSendRequestW(HttpRequest, headers, StringLen (headers), data, StringLen (data)); Alert ( "Last MSDN Error =: " , kernel32::GetLastError()); int read[ 1 ]; // not used Print ( "This is the POST result: " , result); if (HttpOpen > 0 ) InternetCloseHandle(HttpOpen); if (HttpRequest > 0 ) InternetCloseHandle(HttpRequest); return ;
여러분, 안녕하세요,
이 주제가 여러 번 논의되었다는 것을 알고 있습니다. 그러나 주제에 대해 찾은 모든 기사는 불행히도 너무 복잡하거나 너무 오래되어 오류 메시지를 생성합니다. 따라서 간단한 POST/GET 요청을 수행하는 스크립트를 만들 수 없었습니다.
따라서 POST 및 GET 요청을 서버에 보내고 싶습니다. 대상 파일은 간단한 php 파일입니다.
이것은 https://www.mql5.com/en/code 를 기반으로 생성한 첫 번째 테스트 스크립트입니다.
불행히도 요청이 성공하지 못했음을 의미하는 결과 "0"을 받습니다. 하지만 이유를 알 수 없습니다.
당신이 나를 도울 수 있기를 바랍니다.
감사해요,
알렉스