Что делает Indy's HandleRedirect?

У меня возникли проблемы с чтением файлов с помощью Indy с сайта, на котором установлен WordPress.

Похоже, сайт настроен на перенаправление всех обращений на sitename/com/wordpress.

Могу ли я использовать HandleRedirect, чтобы отключить это, чтобы я мог читать файлы из корневой папки?

Какова нормальная настройка для этого свойства? Есть ли недостатки в использовании его для этой цели?

(Редактировать: похоже, моя проблема может быть вызвана кэшированием Windows файла, к которому я обращался ранее через Indy. Я использую fIDHTTP.Request.CacheControl := 'no-cache'; это адекватно?


person RobertFrank    schedule 26.05.2010    source источник


Ответы (1)


Когда сервер отправляет результат 3xx для запроса, свойство HandleRedirects определяет, будет ли Indy немедленно разворачиваться и выдавать новый запрос, используя новое местоположение. В качестве альтернативы Indy вернет код ответа вашей программе. Вы можете сами справиться с этим с помощью события OnRedirect, но если сервер удосужится отправить что-либо в дополнение к коду ответа, вряд ли это будет очень полезно для вашей программы. Дело не в том, что есть скрытые файлы, которые перенаправление не позволяет вам загрузить. Установите для свойства значение true, и пусть Indy позаботится о перенаправлении за вас.

Вероятно, Windows не кэширует что-либо для вашей программы. Indy не использует кэш ОС. Заголовок Cache-Control — это инструкция для прокси-сервера или так называемого исходного сервера о том, что он не должен удовлетворять ваш запрос, используя кешированный ответ, не проверив его на исходном сервере. Возможно, у WordPress есть собственный кеш, который вы обходите.

person Rob Kennedy    schedule 27.05.2010