首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WS库和Content-Encoding/Accept-Encoding标头

WS库和Content-Encoding/Accept-Encoding标头
EN

Stack Overflow用户
提问于 2015-01-24 00:57:33
回答 1查看 411关注 0票数 0

我不确定这里的问题是Spray还是Play Framework。

我有一个运行在Spray上的API服务器,我正在使用WS lib从一个Play应用程序向它发出请求。在我的喷雾路径中,我使用了compressResponseIfRequested指令。当我使用curl发出请求时,我可以看到content-length比没有压缩时要短,并且content- coming头返回为"gzip“。

但是,当我使用WS从Play发出请求时,content-length是未压缩响应的长度,实际上,没有内容编码头。情况就是这样,即使我在请求中包含了一个Accept-Encoding: gzip头。我甚至可以看到,当我记录Spray应用程序内部的响应头时,因为它正在完成Content-Encoding: gzip头的请求。

我在这里做错了什么?任何进一步调试的建议都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-01-24 05:07:22

这可能看起来有点疯狂,但请考虑尝试使用替代的HTTP客户端库,具体而言,我建议使用OkHttp

OkHttp是一个优秀的现代基于Java的异步超文本传输协议库,它支持很多优秀的东西,如SNI,ETags上的基于磁盘的缓存等。我已经多次使用它作为Play-WS库(它是Netty-based,就像Dispatch)的问题修复替身。很容易包装OkHttp以供Scala使用,请参阅此拉取请求中更改的文件:

https://github.com/guardian/prout/pull/9/files#diff-1

绝对值得一试OkHttp!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28114863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档