parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

метод для загрузки файла с учётом редиректов - попинайте

Creator 22.01.2005 12:50

в связи с возросшим уровнем ламеризма в форуме вашему вниманию предлагается "бальзам на душу" - типа "умный вопрос" (шутка):

сделал метод для загрузки файла с учётом возможных HTTP-редиректов (прим.для ламеров: JavaScript и META refresh редиректы не поддерживаются!):
###############################################################################################
#  Грузит файл учитывая редиректы (301, 302, 303, 307)
#
@fileLoad[type;url][i;location]
$i(0)
$location[$url]
^while((def $result && ($result.status == 301 || $result.status == 302 || $result.status == 303 || $result.status == 307)) || ($i < 10)){
	^try{
		$result[^file::load[$type;^taint[as-is][$location];
			$.timeout(30)
			$.any-status(1)
		]]
	}{
		$exception.handled(1)
	}
	^if(def $result && $result.status == 200){
		$i(10)
	}{
		^if(def $result){$location[$result.LOCATION]}
		^i.inc[]
	}
}
из достоинств метода можно отметить что он обрабатывает до 9 редиректов либо просто попыток загрузить файл.
из недостатков - буду рад если ВЫ их назовёте :)

после исправлений найденных недостатков можно было бы положить метод в местный репозитарий p-кода (в примеры)