Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - ошибка при скачивании файла с сайта!!!

Ответить
Настройки темы
C/C++ - ошибка при скачивании файла с сайта!!!

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: SGKorotkow
Дата: 14-05-2008
Добрый день!
Господа программисты помогите решить проблему!

а проблема в следующем: нужно периодически скачивать файлик с определённого сайта, через прокси. (и прокси и конечный сайт требуют аутентентификации!)
использую компоненты Indy BCBuilder 6. в инете куча инфы для Delphi, но мне нужно именно на с++.

TFileStream *file_str = new TFileStream("имя файла", fmCreate);
IdHTTP1->Request->ProxyServer = "";
IdHTTP1->Request->ProxyPort =3128;
IdHTTP1->Request->ProxyPassword = "";
IdHTTP1->Request->ProxyUsername = "";
IdHTTP1->Request->Username ="";
IdHTTP1->Request->Password = "";
IdHTTP1->Get("путь к файлу...", file_str);
delete file_str;

при выполнении строки IdHTTP1->Get("путь к файлу...", file_str); выдаётся ошибка:
Project Project1.exe raised exception class EIdProtocolReplyError with message '403 Forbidden' ...

на сколько я понял аутентификация через прокси проходит, но вот конечный сервер ругается!
может быть я не там задаю логин и пароль для конечного сервака?

заранее благодарен!

Отправлено: 17:16, 12-05-2008

 

Новый участник


Сообщения: 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);

в чём ошибка???

Отправлено: 16:09, 16-05-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - ошибка при скачивании файла с сайта!!!

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ошибка 403 при скачивании файла VtaMC Вебмастеру 10 26-12-2009 01:34
[решено] Ошибка приложения svchost.exe при обновлении с сайта windows update alex911k Microsoft Windows NT/2000/2003 3 11-06-2009 15:33
Непонятная ошибка virtualdub при просмотре либо конвертации DV файла-ошибка only в VD illusionmgs Видео и аудио: обработка и кодирование 9 21-03-2009 14:47
Ошибка при копирование файла. slavamlad Microsoft Windows 2000/XP 12 13-03-2005 03:49
ошибка при запуске файла leg10ner Microsoft Windows 2000/XP 8 09-03-2005 08:42




 
Переход