^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 и переключать режим автоматически, если он не задан вручную.
- ^curl:load[] — $.mode и content-type, G_Z [M] 28.10.2015 19:45
- Если ты не знаешь тип..., Sumo [M] 28.10.2015 21:47
- Ответ, G_Z [M] 28.10.2015 21:54
- Ответ, moko [M] 28.10.2015 21:46
- Ответ, G_Z [M] 28.10.2015 22:45
- Ответ, MoKo 28.10.2015 22:54
- Ответ, G_Z [M] 28.10.2015 22:56 / 28.10.2015 22:58
- Ответ, MoKo 28.10.2015 23:05
- Ответ, G_Z [M] 28.10.2015 21:51 / 28.10.2015 22:02