Java 在Scala中解压缩异步http客户端Gzip的HttpResponseBodyPart?
因为Scala Dispatch 0.9.5似乎没有用于解压缩GZIP流的默认处理程序,所以我尝试将它的Java 在Scala中解压缩异步http客户端Gzip的HttpResponseBodyPart?,java,scala,http,gzip,scala-dispatch,Java,Scala,Http,Gzip,Scala Dispatch,因为Scala Dispatch 0.9.5似乎没有用于解压缩GZIP流的默认处理程序,所以我尝试将它的修改为.stream.Lines处理程序来处理传入数据。由于同一个项目也在使用Spray.io,我试图在HttpResponseBodyPart字节上使用它的gzip解压程序,但它抛出了一个异常。见下文: def onBodyPartReceived(bodyPart: HttpResponseBodyPart) = { if (state == CONTINUE) { v
修改为.stream.Lines
处理程序来处理传入数据。由于同一个项目也在使用Spray.io,我试图在HttpResponseBodyPart
字节上使用它的gzip解压程序
,但它抛出了一个异常。见下文:
def onBodyPartReceived(bodyPart: HttpResponseBodyPart) = {
if (state == CONTINUE) {
val decomp = new GzipDecompressor
val bytes = decomp.decompress( bodyPart.getBodyPartBytes )
onString(new String(bytes, charset))
}
state
}
上述方法修改了以下内容(第23行):
它抛出了一个异常java.util.zip.ZipException:不是GZIP格式的
对于那些想知道GZIP解压器是什么样子的人,这里是:
我知道这确实是一条被压缩的小溪。有解决办法吗?谢谢
更新
玩弄以下内容:
val machine = new GZIPDecompressMachine
val bytes = machine.write( bodyPart.getBodyPartBytes )
onString(machine.stop().flatMap((a) => a).mkString)
类GZIPDecompressMachine
来自这里:
它抛出了一个异常:
java.io.EOFException:ZLIB输入流意外结束
这里有什么想法吗?你解决了这个问题吗?@gerasalus否定,但还没有查看0.11调度。在此期间,我暂时使用低级Java API来处理连接。