Новый участник
Сообщения: 10
Благодарности: 0
|
Профиль
|
Отправить PM
| Цитировать
решил отказаться от компонентов и воспользоваться апишными функциями! но и здесь возникли проблемы!!! а именно:
dwStatusSize:=Sizeof(dwStatus);
OpenHandle:=InternetOpen(PChar('Project1.exe'),INTERNET_OPEN_TYPE_PROXY, PChar(Proxy), nil, 1);
// функция выполняется и возвращается значение $CC0004, значение мне не известно??? GetLastError возвращает код - 0.
ConnectHandle:=InternetConnect(OpenHandle, PAnsiChar(Server), INTERNET_DEFAULT_HTTPS_PORT, PChar(LoginServ), PChar(PassSer), INTERNET_SERVICE_HTTP, 0,0);
//функция выполняется и возвращается значение $CC0008, значение мне не известно??? GetLastError возвращает код - 0.
ResourceHandle:=HTTPOpenRequest(ConnectHandle, 'GET',PAnsiChar(RemoteFile), 'HTTP/1.0', nil, nil, INTERNET_FLAG_KEEP_CONNECTION, 0);
// результат $CC000С, GetLastError возвращает код - 122!!! толком описания этого кода я не нашёл!
InternetSetOption(ResourceHandle, INTERNET_OPTION_PROXY_USERNAME, PAnsiChar(Login), Length(Login)+1);
InternetSetOption(ResourceHandle, INTERNET_OPTION_PROXY_PASSWORD, PAnsiChar(Password), Length(Password)+1);
HttpSendRequest(ResourceHandle, nil, 0, nil, 0);
//результат функции True!
//в логах прокси сервера запроса нет!!! то есть непонятно, почему функции срабатывают и возвращают положительные ответы о выполнении, а прокси сервер ни одного обращения к удалённому серверу не фиксирует????
cnil:=0;
HttpQueryInfo(ResourceHandle, HTTP_QUERY_FLAG_NUMBER or HTTP_QUERY_STATUS_CODE, @dwStatus, dwStatusSize, cnil);
// результат функции True!
if (dwStatus = HTTP_STATUS_NOT_FOUND) then
begin
InternetCloseHandle(ResourceHandle);
InternetCloseHandle(ConnectHandle);
InternetCloseHandle(OpenHandle);
raise Exception.Create('Файл не найден '+RemoteFile);
end;
if (dwStatus = HTTP_STATUS_PROXY_AUTH_REQ) then
begin
InternetCloseHandle(ResourceHandle);
InternetCloseHandle(ConnectHandle);
InternetCloseHandle(OpenHandle);
raise Exception.Create('Неверный пользователь Proxy');
end;
AssignFile(F,LocalFile);
ReWrite(F);
r:=0;
InTag:=false;
repeat
InternetReadFile(ResourceHandle, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(F, Buffer, BufferLen);
//буфер содержит какие-то данные, но очень небольшого объёма, хотя скачиваемый файл около 3-х метров?
until BufferLen = 0;
CloseFile(F);
в чём ошибка???
|