Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2009, 17:04   #1
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение Не полная закачка изображений(idHttp)

TEST-сборка
Программа должна скачать картинки по ссылкам, и отобразить у себя в списке.
Используется: idHttp
Проблемы:
  • Работая в цикле выходит это:
  • Качает не все файлы из списка. Может и качает, но они не отображаются в списке.
Вложения
Тип файла: rar Demo_Test_Load_Img.rar (262.6 Кб, 25 просмотров)
Alter вне форума Ответить с цитированием
Старый 03.09.2009, 17:55   #2
AquaKlaster
Delphi,Python,PHP
Форумчанин
 
Аватар для AquaKlaster
 
Регистрация: 04.04.2009
Сообщений: 138
По умолчанию

400 Bad Request (Плохой запрос)

Появился в HTTP/1.0.

Запрос не понят сервером из-за наличия синтаксической ошибки. Клиенту следует повторно обратиться к ресурсу с изменённым запросом.
AquaKlaster вне форума Ответить с цитированием
Старый 03.09.2009, 18:23   #3
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Вот, переделал немного, все работает, и да у IdHttp часто бывают такие глюки лучше использовать WInInet для этого дела )
Кстате на 21 имаге выйдет ошибка, просто на хосте имагу эту удалили:
http://ru.kidscotv.tv/images/holding-small_0_kidsco.jpg
Вложения
Тип файла: rar Demo_Test_Load_Img.rar (285.1 Кб, 27 просмотров)

Последний раз редактировалось uberchel; 03.09.2009 в 18:39.
uberchel вне форума Ответить с цитированием
Старый 03.09.2009, 19:15   #4
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

OK, WinInet будем использовать для файлов. idHttp буду для закачки текста перед парсингом использовать, т.к при этом у idHttp ошибок почти нет.
Alter вне форума Ответить с цитированием
Старый 03.09.2009, 19:49   #5
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

С IdHttp не работало по двум причинам:

Первая причина (у меня по крайней мере) в том, что неверно загружаются данные из файла.
У memo свойство WordWrap стоит в True, т.е. переносить по словам, а в файле есть строки с пробелами. Есть несколько длинных строк например:
http://ru.kidscotv.tv/images/programmes/255557/Sonic Underground-th.jpg
В memo она заноситься как две (у меня по крайней мере):
http://ru.kidscotv.tv/images/programmes/255557/Sonic
Underground-th.jpg
И на запрос http://ru.kidscotv.tv/images/programmes/255557/Sonic соответственно возвращается.

Вторая поричина опять из-за пробелов в url-строке:
Для корректной работы необходимо url-запрос перевести в url-кодировку.
Я добавил две функции и все заработало.

Такого файла там и правда нет:
http://ru.kidscotv.tv/images/holding-small_0_kidsco.jpg
Вложения
Тип файла: rar Demo_Test_Load_Img_new.rar (21.1 Кб, 24 просмотров)
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 03.09.2009, 23:27   #6
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

OK
.
Alter вне форума Ответить с цитированием
Старый 04.09.2009, 08:20   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
да у IdHttp часто бывают такие глюки
пока голословно)
Цитата:
Вторая поричина опять из-за пробелов в url-строке:
Для этого есть Tidencoding и TidURL , которые позволяют составлять и кодировать корректные адреса.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 04.09.2009, 09:59   #8
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
Для этого есть Tidencoding и TidURL , которые позволяют составлять и кодировать корректные адреса.
По сути я и добавил функцию, которая осуществляла кодирование.

В классе TidURL (из модуля idURL) действительно реализованы методы кодирования/декодирования url-адресов.
Квэнди, спасибо, буду знать.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 04.09.2009, 20:14   #9
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

TidURL это не компонент, а обычный модуль? Что-то не вижу его там. В какой версии delphi он находится? Можно пример использования.
Alter вне форума Ответить с цитированием
Старый 04.09.2009, 21:25   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

это просто модуль, входящий в состав Indy.
Обратите внимание, что на конце не "L" , а "i"
http://ru.wikipedia.org/wiki/URI


Код:
 TIdURI = class
  protected
    FDocument: string;
    FProtocol: string;
    FURI: String;
    FPort: string;
    Fpath: string;
    FHost: string;
    FBookmark: string;
    FUserName: string;
    FPassword: string;
    FParams: string;
    FIPVersion: TIdIPVersion;
    //
    procedure SetURI(const Value: String);
    function GetURI: String;
  public
    constructor Create(const AURI: string = ''); virtual;    {Do not Localize}
    function GetFullURI(const AOptionalFields: TIdURIOptionalFieldsSet = [ofAuthInfo, ofBookmark]): String;
    function GetPathAndParams: String;
    class procedure NormalizePath(var APath: string);
    class function URLDecode(ASrc: string): string;
    class function URLEncode(const ASrc: string): string;
    class function ParamsEncode(const ASrc: string): string;
    class function PathEncode(const ASrc: string): string;
    //
    property Bookmark : string read FBookmark write FBookMark;
    property Document: string read FDocument write FDocument;
    property Host: string read FHost write FHost;
    property Password: string read FPassword write FPassword;
    property Path: string read FPath write FPath;
    property Params: string read FParams write FParams;
    property Port: string read FPort write FPort;
    property Protocol: string read FProtocol write FProtocol;
    property URI: string read GetURI write SetURI;
    property Username: string read FUserName write FUserName;
    property IPVersion : TIdIPVersion read FIPVersion write FIPVersion;
  end;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи

Последний раз редактировалось Квэнди; 04.09.2009 в 21:27.
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление динамических объектов / полная очистка формы 095 Общие вопросы Delphi 3 23.04.2012 16:09
Полная загрузка ЦП в цикле while ActioNs Общие вопросы C/C++ 3 15.08.2009 19:52
закачка по ftp Lonix Работа с сетью в Delphi 1 06.11.2007 21:34
http.Get закачка wordpress Alar Работа с сетью в Delphi 10 09.10.2007 20:19
Полная очистка директории с нюансами... Kerk Общие вопросы Delphi 9 13.07.2007 15:49