Я делаю POST
до restlet
и вам нужно вернуть zip-файл. Но хотя созданный файл является zip, метод возвращает тарабарщину.Ответ POST-ответа в zip-формате
я попытался обертывание FileRepresentation, как это было предложено here:
new org.restlet.engine.application.EncodeRepresentation(org.restlet.data.Encoding.ZIP, representation);
А также пытался добавив Выдает аннотацию, как это:
@Produces({"application/x-zip-compressed"})
Но ни работы. Представление возвращается как строка тарабарщины, а заголовок Content-Type
остается application/octet-stream
. Что мне не хватает?
Это заголовки запросов. Обратите внимание на Accept-Encoding: gzip, deflate
:
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
Content-Type: application/json
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8,he;q=0.6
Заголовки ответа:
Vary: Accept-Encoding
Last-Modified: Wed, 06 May 2015 14:49:03 GMT
Content-Disposition: attachment; filename=_backup_20150506.zip; size=162191
Date: Wed, 06 May 2015 14:49:03 GMT
Accept-Ranges: bytes
Server: Restlet-Framework/2.2.1
Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
Set-Cookie: JSESSIONID=5F10BBBDC58D5C3D6C0474FA12C44FB9; Path=/AppName/; Domain=localhost
Content-Encoding: gzip
Content-Type: application/octet-stream
Transfer-Encoding: chunked
EDIT: Я также попытался изменить тип носителя при создании представления:
MediaType mt = MediaType.APPLICATION_ZIP;
FileRepresentation fr = new FileRepresentation(file, mt);
тип содержимого ответа изменен на Content-Type: application/zip
но возвращаемое значение по-прежнему является талисманной строкой.
Здравствуйте Eddy, вы могли бы точным, если вы используете расширение JAX-RS в Restlet? –
Я экспериментировал с аннотацией Produces (javax.ws.rs.Produces), но это не решило проблему. – Eddy