使用 POST 参数压缩 HTTP 文本
我正在编写客户端软件,该软件使用大量文本(实际上是 JSON 对象)作为 POST 参数来发起 HTTP 请求。我想在发送之前压缩此文本并在服务器上解压缩该文本。
Gzip 生成二进制文件,我认为我无法将其作为 POST 参数发送。
存在哪些选项/算法来压缩文本并将其发送到 Web 服务器?
编辑:是否可以选择 GZIP,然后对二进制数据进行 BASE64 编码?
I am writing client software that initiates a HTTP request with a large blob of text (JSON object actually) as POST parameter. I want to compress this text before sending and decompress the text on the server.
Gzip produces binary, which I can't send as a POST parameter, I think.
Which options/algorithms exist to compress text and send it to a web server?
Edit: Would it be an option to GZIP and then BASE64 encode the binary data?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为什么不直接使用标准的 HTTP gzip 压缩?
(不必要地重新发明轮子似乎有点疯狂。)
更新
啊是的 - 我的错。那么为什么不简单地对文件进行 gzip 压缩,将其上传到服务器,就像上传 multipart/form-data 文件一样,然后在服务器上取消 gzip 压缩呢?
Why don't you just use the standard HTTP gzip compression?
(It just seems a bit mad to needlessly re-invent the wheel.)
Update
Ah yes - my bad. So why not simply gzip the file, upload it to the server as you would a multipart/form-data file upload and then un-gzip it on the server?
该文件是一个漫长/不必要的工作,最初的问题涉及与难以忍受的大 Json blob 的战斗。从我的黑客行为来看,我可以看出它很大程度上取决于服务器,有些支持它,有些不支持。
对于最初的问题,您可以在http post中设置二进制数据,真正的问题是服务器将如何处理它。就像C#客户端不会自动解压一样,你必须编写额外的代码。
The file is a long/unnecessary work around, the original question relates to battle with unbearably large Json blob. From my hacking around I can tell it highly depends on the server, some do support it some don't.
To the original question, you can set the binary data in http post, the real question what is the server going to do with it. It is the same way that C# client does not automatically unzip, you have to write extra code.