HttpOpenRequestA - critical error

 

У меня есть следующие проблемы:
--------------------------------------------------------------------------------------------------------------
There has been a critical error
Time : 2010.08.12 10:10
Program : Client Terminal
Version : 4.00 (build: 226, 24 Mar 2009)
OS : Windows XP Professional 5.1 Service Pack 3 (Build 2600)
Processors : 1 x X86 (level 6)
Memory : 1244656/368488 kb
Exception : C0000005
Address : 3D94ACE6
Access Type : read
Access Addr : 00000001

Registers : EAX=00000000 CS=001b EIP=3D94ACE6 EFLGS=00010202
: EBX=1064AAD0 SS=0023 ESP=0427F658 EBP=0427FABC
: ECX=00000000 DS=0023 ESI=00000001 FS=003b
: EDX=00000000 ES=0023 EDI=1064A860 GS=0000

Stack Trace : 004587D5 00463D37 004555B1 7C80B729
: 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000

Modules :
1 : 00400000 004BB000 c:\program files\odl metatrader 4\terminal.exe
2 : 038D0000 002C5000 c:\windows\system32\xpsp2res.dll
3 : 0F760000 00009000 c:\windows\system32\normaliz.dll
4 : 3D930000 000D1000 c:\windows\system32\wininet.dll
5 : 3DFD0000 00045000 c:\windows\system32\iertutil.dll
6 : 3E1C0000 005CD000 c:\windows\system32\ieframe.dll
7 : 5AD70000 00038000 c:\windows\system32\uxtheme.dll
8 : 5B860000 00055000 c:\windows\system32\netapi32.dll
9 : 662B0000 00058000 c:\windows\system32\hnetcfg.dll
10 : 71A50000 0003F000 c:\windows\system32\mswsock.dll
11 : 71A90000 00008000 c:\windows\system32\wshtcpip.dll
12 : 71AA0000 00008000 c:\windows\system32\ws2help.dll
13 : 71AB0000 00017000 c:\windows\system32\ws2_32.dll
14 : 722B0000 00005000 c:\windows\system32\sensapi.dll
15 : 73DD0000 000FE000 c:\windows\system32\mfc42.dll
16 : 746F0000 0002A000 c:\windows\system32\msimtf.dll
17 : 74720000 0004C000 c:\windows\system32\msctf.dll
18 : 755C0000 0002E000 c:\windows\system32\msctfime.ime
19 : 75CF0000 00091000 c:\windows\system32\mlang.dll
20 : 76380000 00005000 c:\windows\system32\msimg32.dll
21 : 76390000 0001D000 c:\windows\system32\imm32.dll
22 : 763B0000 00049000 c:\windows\system32\comdlg32.dll
23 : 76790000 0000C000 c:\windows\system32\cryptdll.dll
24 : 769C0000 000B4000 c:\windows\system32\userenv.dll
25 : 76B40000 0002D000 c:\windows\system32\winmm.dll
26 : 76BF0000 0000B000 c:\windows\system32\psapi.dll
27 : 76D60000 00019000 c:\windows\system32\iphlpapi.dll
28 : 76E80000 0000E000 c:\windows\system32\rtutils.dll
29 : 76E90000 00012000 c:\windows\system32\rasman.dll
30 : 76EB0000 0002F000 c:\windows\system32\tapi32.dll
31 : 76EE0000 0003C000 c:\windows\system32\rasapi32.dll
32 : 76F20000 00027000 c:\windows\system32\dnsapi.dll
33 : 76F60000 0002C000 c:\windows\system32\wldap32.dll
34 : 76FB0000 00008000 c:\windows\system32\winrnr.dll
35 : 76FC0000 00006000 c:\windows\system32\rasadhlp.dll
36 : 76FD0000 0007F000 c:\windows\system32\clbcatq.dll
37 : 77050000 000C5000 c:\windows\system32\comres.dll
38 : 77120000 0008B000 c:\windows\system32\oleaut32.dll
39 : 773D0000 00103000 c:\windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
40 : 774E0000 0013D000 c:\windows\system32\ole32.dll
41 : 77920000 000F3000 c:\windows\system32\setupapi.dll
42 : 77B40000 00022000 c:\windows\system32\apphelp.dll
43 : 77C00000 00008000 c:\windows\system32\version.dll
44 : 77C10000 00058000 c:\windows\system32\msvcrt.dll
45 : 77C70000 00025000 c:\windows\system32\msv1_0.dll
46 : 77DD0000 0009B000 c:\windows\system32\advapi32.dll
47 : 77E70000 00092000 c:\windows\system32\rpcrt4.dll
48 : 77F10000 00049000 c:\windows\system32\gdi32.dll
49 : 77F60000 00076000 c:\windows\system32\shlwapi.dll
50 : 77FE0000 00011000 c:\windows\system32\secur32.dll
51 : 78130000 00128000 c:\windows\system32\urlmon.dll
52 : 7C800000 000F6000 c:\windows\system32\kernel32.dll
53 : 7C900000 000B2000 c:\windows\system32\ntdll.dll
54 : 7C9C0000 00817000 c:\windows\system32\shell32.dll
55 : 7E410000 00091000 c:\windows\system32\user32.dll
56 : 7E720000 000B0000 c:\windows\system32\sxs.dll

Call stack :
---------------------------------------------------------------------------------

Вот выдержка из кода:
---------------------------------------------------------------------------------
#import "wininet.dll"

int InternetCloseHandle(int hInet);
int HttpOpenRequestA(
int hConnect,
string lpszVerb,
string lpszObjectName,
string lpszVersion,
string lpszReferer,
int lplpszAcceptTypes,
int dwFlags,
int dwContext
);
bool HttpSendRequestA(
int hRequest,
string lpszHeaders,
int dwHeadersLength,
string lpOptional,
int dwOptionalLength
);
int InternetConnectA(
int hInternet,
string lpszServerName,
int nServerPort,
string lpszUsername,
string lpszPassword,
int dwService,
int dwFlags,
int dwContext
);
int InternetOpenA(
string lpszAgent,
int dwAccessType,
string lpszProxyName,
string lpszProxyBypass,
int dwFlags
);
#import

#define FLAG_KEEP_CONNECTION 0x00400000
#define FLAG_PRAGMA_NOCACHE 0x00000100
#define FLAG_RELOAD 0x80000000

int start()
{
int inet_handle = InternetOpenA("Mozilla",0,"",NULL,0);
if (inet_handle==0) {Print("SessionERR: ", inet_handle);
InternetCloseHandle(inet_handle);
}

int connect_handle = InternetConnectA(inet_handle, "aaabbbccc.com", 80, NULL, NULL, 3, 0, 0);
if (connect_handle==0) {Print("ConnectionERR: ", connect_handle);
InternetCloseHandle(connect_handle);
InternetCloseHandle(inet_handle);
}

int request = HttpOpenRequestA(connect_handle, "GET", "/", "HTTP/1.1", "", "",FLAG_KEEP_CONNECTION|FLAG_RELOAD|FLAG_PRAGMA_NOCACHE, 0);
if (request==0) {Print("requestERR: ",request);
InternetCloseHandle(request);
InternetCloseHandle(connect_handle);
InternetCloseHandle(inet_handle);
}

bool res =HttpSendRequestA(request,"Content-Type: application/x-www-form-urlencoded; charset=UTF-8",62,"",0);
if (res==0) {Print("ResERR: ",res);
InternetCloseHandle(request);
InternetCloseHandle(connect_handle);
InternetCloseHandle(inet_handle);
}

InternetCloseHandle(request));
InternetCloseHandle(connect_handle));
InternetCloseHandle(inet_handle));
return(0);
}
---------------------------------------------------------------------------------


Ошибка возникает при обращении в HttpOpenRequestA. Иногда первый раз, иногда в пятый или шестой ... Если метод POST все работы. Если используею функцию InternetOpenUrlA вместо HttpOpenRequestA с GET метод все в порядке.
Я пробовал ее на разных компьютерах и терминалы - результат один и тот же самое - critical error.
Помагите!

 
akcioner:


Ошибка возникает при обращении в HttpOpenRequestA. Иногда первый раз, иногда в пятый или шестой ... Если метод POST все работы. Если используею функцию InternetOpenUrlA вместо HttpOpenRequestA с GET метод все в порядке.
Я пробовал ее на разных компьютерах и терминалы - результат один и тот же самое - critical error.
Помагите!

Если и так все работы и так все работы, в чем проблема? 

 

Прошу прощения, если что-нибудь ясно:
InternetOpenUrlA - работает
HttpOpenRequestA с POST - критическая ошибка
HttpOpenRequestA с GET - критическая ошибка

 

вот тут всё работы. проверяна однако!

а если не работы, то переустанави винда.

 
https://c.mql4.com/forum/2010/07/s_wininet_2.mq4
 

sergeev, у меня MQL4 и HttpOpenRequestA.
"Я пробовал ее на разных компьютерах и терминалы - результат один и тот же самое - critical error."

Integer, я знаю твой код, но ето нет HttpOpenRequestA.

HttpOpenRequestA с POST тоже критическая ошибка.

 
akcioner:

ну вот вы кинули код и ждете помощи. 

Во первых - в этом коде нифига не ясно. Если хотите, чтоб кто то обратил на него внимание - то для начала воспользуйтесь кнопкой src на панельке и отформатируйте его.

Во-вторых, если у вас какая то проблема, то думаю вам не сложно будет подготовить готовый тестовый скрипт в файле, чтоб я или кто то другой запустил его у себя и проверил на наличие такой же critical error как у вас.

В-третьих. Думаю вы понимаете, что порядок вызова wininet не отличается от MQL5 и вы зря пишите, что та статья вам не поможет. Там все разжевано именно для работы с HttpRequest

Если вам будет очень надо, то могу дать свою библиотеку функций на MQL4 (полный аналог того, что описано в статье MQL5 ), и которой уже долгое время как пользуюсь без глюков на любом брокере и любой винде. и с запросами и еще всяким разным.

У вас наверняка ошибка в коде, и если хотите помощи, то сделайте помогающему хотя бы какие то условия для работы с вашей проблемой. 

 

Спасибо за ваше время!
Этот компьютер не позволяет установку MT5. Принцип совершенно ясно, и очень удивляться, что код не работает.
Скопирую код в новый файл и чудо - все в порядке!??!

Извините за руский, но translate.google и мой шестий клас так может.

Причина обращения: