например, как самым простым способом слить https://www.wasm.ru/index.php ? Если можно, линк или кусок кода Всем откликнувшимся - респект
Код (Text): HINTERNET hSession, hConnect, hReq; DWORD BytesRead, TotalRead, Result; Result=0; TotalRead=0; hSession = InternetOpen("Opera 5.22", INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0); hConnect = InternetConnect(hSession, "https://www.wasm.ru", INTERNET_DEFAULT_HTTPS_PORT, "", "", INTERNET_SERVICE_HTTP, 0, 0); hReq = HttpOpenRequest (hConnect, 0, "/index.php", HTTP_VERSION, "", NULL, INTERNET_FLAG_SECURE | INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID, 0); HttpSendRequest(hReq, 0, 0, 0, 0); InternetReadFile(hReq, pOutBuf, 0x400, &BytesRead); Не работает HttpSendRequest(hReq, 0, 0, 0, 0); - возвращает ноль Гугл я заюзал первым делом
Когда то давно писал. Код (Text): function GetPostPage(Len: PCardinal; Page: PChar; Post: PChar): PChar; implementation function DownloadPage(hPage: HINTERNET; Len: PCardinal): PChar; var Ptr, bw: Cardinal; begin result := GetMemory(1024 * 50); Ptr := 0; while true do begin if not InternetQueryDataAvailable(hPage, bw, 0, 0) then break; if bw = 0 then break; if Len <> nil then Len^ := Ptr + bw; if not InternetReadFile(hPage, Pointer(Cardinal(result) + Ptr), bw, bw) then break; if bw = 0 then break; Ptr := Ptr + bw; end end; function GetPostPage(Len: PCardinal; Page: PChar; Post: PChar): PChar; var hInet: HINTERNET; hServer: HINTERNET; hPage: HINTERNET; bw: Cardinal; flag: Cardinal; Hdr: PChar; begin result := nil; hInet := InternetOpen(BROWSER_IDENT, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); if hInet = nil then begin DoError('InternetOpen() Error'); exit; end; hServer := InternetConnect(hInet, SERVER_NAME, INTERNET_DEFAULT_HTTPS_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 0); if hServer <> nil then begin flag := INTERNET_FLAG_SECURE or INTERNET_FLAG_IGNORE_CERT_CN_INVALID or INTERNET_FLAG_IGNORE_CERT_DATE_INVALID or INTERNET_FLAG_RELOAD; hPage := HttpOpenRequest(hServer, 'POST', Page, HTTP_VERSION, nil, nil, flag, 0); if hPage <> nil then begin Hdr := 'Content-Type: application/x-www-form-urlencoded'; if HttpSendRequest(hPage, Hdr, length(Hdr), Post, length(Post)) then result := DownloadPage(hPage, Len) else begin if GetLastError = 12045 then begin bw := 0; InternetQueryOption(hPage, INTERNET_OPTION_SECURITY_FLAGS, @Flag, bw); Flag := Flag or SECURITY_FLAG_IGNORE_UNKNOWN_CA; InternetSetOption(hPage, INTERNET_OPTION_SECURITY_FLAGS, @Flag, sizeof(Flag)); if HttpSendRequest(hPage, Hdr, length(Hdr), Post, length(Post)) then result := DownloadPage(hPage, Len) else DoError('HttpSendRequest() Error'); end else DoError('HttpSendRequest() Error'); end; HttpEndRequest(hPage, nil, 0, 0); InternetCloseHandle(hPage); end else DoError('HttpOpenRequest() Error'); InternetCloseHandle(hServer); end else DoError('InternetConnect() Error'); InternetCloseHandle(hInet); end;
А я так писал когжа-то Всё отлично работало и работает. Код (Text): hInternet = InternetOpen("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",INTERNET_OPEN_TYPE_PRECONFIG,0,0,0); if (hInternet != 0) { hConnect = InternetConnect(hInternet,szServerName,INTERNET_DEFAULT_HTTPS_PORT,0,0,INTERNET_SERVICE_HTTP,0,1); if (hConnect != 0) { hRequest = HttpOpenRequest(hConnect,"GET","/index.php",0,0,(LPCSTR*)"text/*",INTERNET_FLAG_KEEP_CONNECTION+INTERNET_FLAG_DONT_CACHE +INTERNET_FLAG_SECURE+INTERNET_FLAG_RELOAD+INTERNET_FLAG_IGNORE_CERT_CN_INVALID+INTERNET_FLAG_IGNORE_CERT_DATE_INVALID,1); if (hRequest != 0) { DWORD dwFlags; DWORD dwBuffLen = sizeof(dwFlags); InternetQueryOption (hRequest, INTERNET_OPTION_SECURITY_FLAGS, (LPVOID)&dwFlags, &dwBuffLen); dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA; InternetSetOption (hRequest, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, sizeof (dwFlags)); LOG("Send request for session ID\n"); BOOL bSend = HttpSendRequest(hRequest,0,0,sess_id,sizeof(sess_id));
Помогите пожалуйста! Простейший код выдает ошибку на линкинге. HINTERNET hInternetSession; hInternetSession = InternetOpen( (LPCWSTR)"Microsoft Internet Explorer", // agent (DWORD)INTERNET_OPEN_TYPE_PRECONFIG, // access NULL, NULL, 0); // defaults InternetCloseHandle(hInternetSession); Error LNK2001: unresolved external symbol __imp__InternetCloseHandle@4 main.obj Пользуюсь Visual Studio 2008.
Ребят может кто обьяснит всетаки как избавиться от ошибки 12045 (Invalid Certificate) ? Код (Text): invoke InternetOpen,$CTA0("UserAgent 1.0"),INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0 mov hInternet,eax .if eax != NULL invoke InternetConnect,[hInternet],$CTA0("www.wasm.ru"),INTERNET_DEFAULT_HTTPS_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,1 mov [hConnect],eax .if eax != NULL invoke HttpOpenRequest,[hConnect],$CTA0("GET"),$CTA0("/index.php"),$CTA0("HTTP/1.1"),NULL,NULL,INTERNET_FLAG_KEEP_CONNECTION or INTERNET_FLAG_SECURE or INTERNET_FLAG_IGNORE_CERT_CN_INVALID or INTERNET_FLAG_IGNORE_CERT_DATE_INVALID or INTERNET_FLAG_NO_COOKIES,1 mov [hRequest],eax .if eax != NULL invoke HttpSendRequest,[hRequest],0,0,0,0 .if eax == 1 invoke InternetReadFile,[hRequest],addr iBuffer,1000,addr ByteWRite invoke MessageBox,0,addr iBuffer,0,0 .endif .endif .endif .endif invoke GetLastError .if eax != 0 invoke wsprintf,addr szBuf,$CTA0("Error %d"),eax invoke MessageBox,0,addr szBuf,0,0 .endif invoke InternetCloseHandle,hOpenUrl invoke InternetCloseHandle,hConnect invoke InternetCloseHandle,hInternet