parser

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

 

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

^curl:load[] — $.mode и content-type

G_Z 28.10.2015 19:45

У curl'а есть опция $.mode[text|binary], которая управляет режимом загруженного файла.

Вижу две странности с ней:
1. программа должна знать режим заранее, формируя запрос, что не всегда возможно — кто ж знает, что вернёт сервер;
2. на режим никак не влияет content-type ответа, хотя, есть мнение, должен.

Пример:
^json:string[^curl:load[$.url[http://www.parser.ru/f/1/download/parser_logo.eps.zip]]]
{
	"class":"file",
	"name":"noname.dat",
	"size":31573,
	"mode":"text",
	"content-type":"text\/plain",
	"status":200,
	"DATE":"Wed, 28 Oct 2015 16:40:38 GMT",
	"SERVER":"Apache\/1.3.37 (Unix)",
	"LAST-MODIFIED":"Fri, 26 Apr 2002 19:47:32 GMT",
	"ETAG":"\"153a0bc-7b57-3cc9aed4\"",
	"ACCEPT-RANGES":"bytes",
	"CONTENT-LENGTH":"31575",
	"CONNECTION":"close",
	"CONTENT-TYPE":"application\/zip",
	"X-PAD":"avoid browser bug"
}
Имеем дело с бинарным файлом — application/zip — а $.mode[text].
Плюс странное с двумя content-type в объекте файла, нижнерегистровый, насколько понимаю, добавляет Парсер и к ответу сервера он отношения не имеет.

Сменить режим файла вручную невозможно.

Предлагаю учитывать content-type и переключать режим автоматически, если он не задан вручную.