Spring 集成 GZIP HTTP 请求
Spring Integration GZIP HTTP requests
我需要通过出站网关压缩 HTTP 请求。是否有 GZIPInterceptor
用于 Spring 集成或其他东西?
没有开箱即用的东西,但是在发送到网关之前添加一对转换器来压缩有效载荷就足够了...
@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 评论中的 link。
我需要通过出站网关压缩 HTTP 请求。是否有 GZIPInterceptor
用于 Spring 集成或其他东西?
没有开箱即用的东西,但是在发送到网关之前添加一对转换器来压缩有效载荷就足够了...
@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 评论中的 link。