java - Spring 集成 GZIP HTTP 请求

标签 java spring spring-integration gzip spring-ws

我需要通过出站网关压缩 HTTP 请求。是否有用于 Spring Integration 的 GZIPInterceptor 或其他东西?

最佳答案

没有任何开箱即用的东西,但很容易添加一对变压器来压缩有效负载,然后再发送到网关......

@Bean
@Transformer(inputChannel = "gzipIt", outputChannel = "gzipped")
public byte[] gzip(byte[] in) throws IOException {
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    GZIPOutputStream gzOut = new GZIPOutputStream(out);
    FileCopyUtils.copy(in, gzOut);
    return out.toByteArray();
}

还有一个要解压...

@Bean
@Transformer(inputChannel = "gUnzipIt", outputChannel = "gUnzipped")
public byte[] gUnzip(byte[] in) throws IOException {
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    GZIPInputStream gzIn = new GZIPInputStream(new ByteArrayInputStream(in));
    FileCopyUtils.copy(gzIn, out);
    return out.toByteArray();
}

您也可以在 ClientHttpRequestInterceptor 中执行此操作。

另请参阅下面 Artem 评论中的链接。

关于java - Spring 集成 GZIP HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43484392/

相关文章:

java - Spring API 中的日志请求和响应

java - Spring Integration 不允许负面回顾

java - spring-integration 启动时动态创建 MessageSource

java - 切入点注释与最终字符串

java - 在另一个 JFrame 上显示主类的数据

java - Spring 开机测试 "No qualifying bean of type available"

java - 当我从一个应用程序向其他应用程序发送 10 个请求时,Zipkin(在 Spring Boot 应用程序中)不会存储所有跟踪 ID

java - 响应客户端后如何提取有效负载?

java - 如何让我的 AlertDialog 以等宽字体显示其文本?

java - JTextField 数组。面板中的对齐方式