gpt4 book ai didi

jersey - Jersey 2/Grizzly 中的 GZIP 编码

转载 作者:行者123 更新时间:2023-12-04 02:52:46 26 4
gpt4 key购买 nike

我无法在我的 Jersey 服务中激活 gzip 编码。这是我尝试过的:

  • jersey-quickstart-grizzly2 开始来自 Getting Started Guide 的原型(prototype).
  • 已添加 rc.register(org.glassfish.grizzly.http.GZipContentEncoding.class);(也试过 rc.register(org.glassfish.jersey.message.GZipEncoder.class); )
  • 开始于 mvn exec:java
  • curl --compressed -v -o - http://localhost:8080/myapp/myresource 测试

  • 结果如下:
    > GET /myapp/myresource HTTP/1.1
    > User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 zlib/1.2.3.4 ...
    > Host: localhost:8080
    > Accept: */*
    > Accept-Encoding: deflate, gzip
    >
    < HTTP/1.1 200 OK
    < Content-Type: text/plain
    < Date: Sun, 03 Nov 2013 08:07:10 GMT
    < Content-Length: 7
    <
    * Connection #0 to host localhost left intact
    * Closing connection #0
    Got it!
    也就是说,尽管 Accept-Encoding: deflate, gzip在请求中,没有 Content-Encoding: gzip在回应中。
    我在这里想念什么?

    最佳答案

    您必须注册 org.glassfish.jersey.server.filter.EncodingFilter也是。此示例启用 deflategzip压缩:

    import org.glassfish.jersey.message.DeflateEncoder;
    import org.glassfish.jersey.message.GZipEncoder;
    import org.glassfish.jersey.server.ResourceConfig;
    import org.glassfish.jersey.server.filter.EncodingFilter;
    ...
    private void enableCompression(ResourceConfig rc) {
    rc.registerClasses(
    EncodingFilter.class,
    GZipEncoder.class,
    DeflateEncoder.class);
    }

    这个解决方案是针对 Jersey 的,不仅适用于 Grizzly,也适用于 JDK Http 服务器。

    关于jersey - Jersey 2/Grizzly 中的 GZIP 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19751014/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com