AppEngineにJavaサーブレットを作成しています。このサーブレットはpngイメージを生成します。私は応答を "gzip"したいと思います。GZipOutputStream&appengine
resp.setHeader("Content-Encoding","gzip");
resp.setContentType("image/png");
// ... png generation ...
GZIPOutputStream gzos = new GZIPOutputStream(resp.getOutputStream());
gzos.write(myPNGdata);
gzos.close();
:しかし、開発サーバでは、それは大丈夫だが、細かいPNGが表示され、レスポンスが良くgzip圧縮されている私は、このようにそれを行います。それから私は本番サーバ(AppEngineの)上でテストし、私が得るすべては私のコードで間違っている可能性が何
...「壊れた」イメージですか?それはdev/prod環境に関係していますか?
もちろん、出力をgzipしないと、どちらの環境でも問題ありません。
ありがとうございました。
編集:
GZIPOutputStream gzos = new GZIPOutputStream(resp.getOutputStream());
gzos.write(ImagesServiceFactory.makeImage(readImage("somePicture.png")).getImageData());
gzos.flush();
gzos.finish();
gzos.close();
と、それはどちらか動作しません:私は、あまりにもこれを試してみました。
編集2:実際には、応答はgzipです。私は "curl theUrl> tmp.gz"でサーブレットを取り出した後、 "tmp.gz"をgunzipし、イメージは正常です。しかし、誰ブラウザは、それが正しく私のgzipで何が悪い:(表示することができません?
私は 'gzos.flush();'と 'gzos.finish();'を試してみましたが、それはあなたには当てはまりませんでした。 App EngineでKOしてください。 –
resp.getOutputStream()を試しましたか?flush()? –