Jerseyを使用するJavaアプリケーションからgzip
ed multipart POST
をTomcatサーバーに送信しようとしています。マルチパートリクエストが圧縮されていないときは、正常に動作します。圧縮POSTSの他のタイプは、単一のエンティティXMLを送信するなど、正常に動作します。圧縮データを投稿するのはHTTP標準ではありませんが、Tomcatはある程度サポートしているようです。マルチパートメッセージでHTTP gzipエンコーディング
取り組んで非圧縮マルチポスト:
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--
私は、以下のヘッダが送信されジャージーを使用して、それを圧縮して、私は「不正な構文」
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}
の説明に戻ってHTTP 400を取得すると
私がしようとしていることは可能ですか? Content-Type
は実際にmultipart/x-gzip
を読み込む必要がありますか?私はそれが圧縮されると、境界のテキストがContent-Type
ヘッダーの中に残されていることに気が付いています - これはまた問題ですか?