我正在使用+[NSData gtm_dataByGzippingData:] gzip +[NSJSONSerialization dataWithJSONObject:options:error:]
返回的UTF-8编码数据。
如何将此gzip压缩NSData
转换为我可以作为参数发送到Python服务器的字符串,以便服务器可以使用zlib.decompress()对其进行解压缩?
答案 0 :(得分:1)
使用-[NSData base64EncodedString]
之类的方法对gzip压缩的NSData
进行base64编码,然后再将其发送到Python服务器。
然后,Python服务器可以对其进行base64解码,然后解压缩它:
contacts_data = zlib.decompress(base64.b64decode(contacts_base64), 16)
答案 1 :(得分:1)
正如您在问题中引用的头文件中所述,deflate不是gzip。 Gzip是一种文件结构,其中zlib更像是压缩流。
首先,我建议您更改代码以使用...
+ (NSData *)gtm_dataByDeflatingData:(NSData *)data;
所以,现在你有了压缩数据。你是怎么把它发送到服务器的?你是通过HTTP推动这个吗?它是具有直接套接字连接的自定义服务吗?你能发送8位字节,是否限制发送7位字节?你在使用NURLConnection吗? ...您是否尝试通过HTTP将(压缩)数据上传为文件?