Нужно получить содержимое страницы через https . Для http функция нормально отрабатывает , а для ssl жалуется на неверный сертификат (выставлял много различных флагов) . Если у кого нить есть наводящие примеры под fasm or masm скиньте в пм . Всю ночь возился с этим , но так и не имел результат. Вот код функции Код (Text): #################################################################################### ; Загружает в буффер указанную страницу (Указатель на url,указатель на буффер,размер буффера) # #################################################################################### GetHTTPData proc url:DWORD,buffy__:DWORD,buffy_len__:DWORD .data? AppName db 256 dup(?) hSession dd ? hUrl dd ? Bufferlen dd ? .code pusha invoke GetModuleFileName, hInstance, addr AppName, sizeof AppName invoke InternetOpen,addr AppName,INTERNET_OPEN_TYPE_PRECONFIG,0,0,0 mov hSession, eax .if hSession == INVALID_HANDLE_VALUE mov eax, FALSE ret .endif invoke InternetOpenUrl,hSession,url,0,0,0,INTERNET_FLAG_IGNORE_CERT_CN_INVALID or INTERNET_FLAG_IGNORE_CERT_DATE_INVALID or INTERNET_FLAG_SECURE mov hUrl, eax .if hUrl == INVALID_HANDLE_VALUE mov eax, FALSE ret .endif invoke GetLastError invoke InternetReadFile,hUrl,buffy__,buffy_len__,addr Bufferlen invoke InternetCloseHandle,hUrl invoke InternetCloseHandle,hSession popa ret GetHTTPData endp ах да возвращает ERROR_INTERNET_INVALID_CA , флаги ставил непомогает
Код (Text): function HttpsDownloadFileGET(Const szHost, szPath, szData : PChar) : string; const dwBufSize = 1024 * 1024; var hOpenHandle, hConnectHandle, hResourceHandle: Pointer; Buff : Pointer; Cbyte : DWORD; Flag, BuffLen : DWORD; Begin result := ''; GetMem(Buff, dwBufSize); hOpenHandle:=InternetOpen('Mozilla/4.0 (compatible; MSIE 6.0; Windows XP 5.1)', PRE_CONFIG_INTERNET_ACCESS, nil, nil, 0); If hOpenHandle<>nil then Begin hConnectHandle:=InternetConnect(hOpenHandle, szHost, INTERNET_DEFAULT_HTTPS_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 0); If hConnectHandle<>nil then Begin hResourceHandle:=HttpOpenRequest(hConnectHandle, 'GET', szPath, HTTP_VERSION, nil, nil, INTERNET_FLAG_RELOAD or INTERNET_FLAG_SECURE or INTERNET_FLAG_IGNORE_CERT_CN_INVALID or INTERNET_FLAG_IGNORE_CERT_DATE_INVALID, 0); If hResourceHandle<>nil then Begin bufflen := SizeOf(Flag); InternetQueryOption (hResourceHandle, INTERNET_OPTION_SECURITY_FLAGS, @Flag, BuffLen); Flag := Flag or SECURITY_FLAG_IGNORE_UNKNOWN_CA; InternetSetOption (hResourceHandle, INTERNET_OPTION_SECURITY_FLAGS, @Flag, sizeof (Flag)); HttpSendRequest(hResourceHandle, 'Content-Type: application/x-www-form-urlencoded', 47, szData, Length(szData)); InternetReadFile(hResourceHandle, Buff, dwBufSize, CByte); Result := Copy(PCHAR(Buff), 1, cByte); End; InternetCloseHandle(hResourceHandle); End; InternetCloseHandle(hConnectHandle); End; InternetCloseHandle(hOpenHandle); FreeMem(Buff); end; Местами кривовато сделано, но робит. под пивом писалось... :-P