Я пытаюсь отправить gzip
ed multipart POST
на сервер Tomcat из приложения Java, используя Джерси.Когда составной запрос не сжимается, он работает отлично.Другие типы сжатых POSTS работают нормально, например, отправка одного объекта XML.Я (полагаю) публикация сжатых данных не является стандартом HTTP, но кажется, что Tomcat поддерживает их в некоторой степени.
рабочая несжатая многосоставная запись:
POST /myApp/rest/data HTTP/1.1
Content-Type: multipart/mixed; boundary=Boundary_1_23237284_1331130438482
Cookie: JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXX;Version=1;Path=/myApp/
MIME-Version: 1.0
User-Agent: Java/1.6.0_26
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Transfer-Encoding: chunked
d3
--Boundary_1_23237284_1331130438482
Content-Type: application/octet-stream
Content-Disposition: form-data; filename="uploadFile.war"; modification-date="Wed, 29 Feb 2012 18:01:38 GMT"; size=25343899; name="file"
{binary data here}
--Boundary_1_25179713_1331128929019
Content-Type: application/xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><myXMLEntity>stuff</myXMLEntity>
--Boundary_1_25179713_1331128929019--
Когда я сжимаю ихиспользуя Джерси GZIPContentEncodingFilter()
, отправляются следующие заголовки, и я возвращаю HTTP 400 с описанием «неправильного синтаксиса»
POST /myApp/rest/data HTTP/1.1
Content-Type: multipart/mixed
Cookie: JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;Version=1;Path=/myApp/
Accept-Encoding: gzip
Content-Encoding: gzip
User-Agent: Java/1.6.0_26
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Transfer-Encoding: chunked
{binary data here}
Возможно ли то, что я пытаюсь сделать?Должен ли Content-Type
на самом деле читать multipart/x-gzip
?Я замечаю, что когда он сжимается, текст границы остается за заголовком Content-Type
- это тоже проблема?