【问题标题】:Objective-C gzipped NSData to Python gzipped string?Objective-C gzipped NSData 到 Python gzipped 字符串?
【发布时间】:2012-05-12 00:03:38
【问题描述】:

我正在使用+[NSData gtm_dataByGzippingData:]+[NSJSONSerialization dataWithJSONObject:options:error:] 返回的UTF-8 编码数据进行gzip。

如何将此 gzip 压缩的 NSData 转换为可以作为参数发送到 Python 服务器的字符串,以便服务器可以使用 zlib.decompress() 解压缩它?

【问题讨论】:

    标签: python objective-c nsstring gzip nsdata


    【解决方案1】:

    使用-[NSData base64EncodedString] 之类的方法对gzip 压缩的NSData 进行base64 编码,然后再将其发送到Python 服务器。

    然后,Python 服务器可以对其进行 base64 解码,然后像这样解压缩:

    contacts_data = zlib.decompress(base64.b64decode(contacts_base64), 16)
    

    【讨论】:

      【解决方案2】:

      正如您在问题中引用的头文件中所说,deflate 不是 gzip。 Gzip 是一种文件结构,而 zlib 更像是一种压缩流。

      首先,我建议您更改代码以使用...

      + (NSData *)gtm_dataByDeflatingData:(NSData *)data;
      

      所以,现在您有了压缩数据。你如何将它发送到服务器?你是通过 HTTP 推送这个吗?它是具有直接套接字连接的自定义服务吗?您可以发送 8 位字节吗,您是否仅限于发送 7 位字节? ...您在使用 NURLConnection 吗? ...您是否尝试通过 HTTP 将(压缩)数据作为文件上传?

      【讨论】:

        猜你喜欢
        • 2015-01-15
        • 1970-01-01
        • 2012-09-21
        • 1970-01-01
        • 1970-01-01
        • 2012-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多