1

+[NSData gtm_dataByGzippingData:]を使用して、 によって返された UTF-8 でエンコードされたデータを gzip し+[NSJSONSerialization dataWithJSONObject:options:error:]ます。

サーバーがzlib.decompress()NSDataで圧縮解除できるように、この gzip 圧縮を Python サーバーにパラメーターとして送信できる文字列に変換するにはどうすればよいですか?

4

2 に答える 2

1

Python サーバーに送信する前に-[NSData base64EncodedString]、gzip されたファイルを base64 エンコードするような方法を使用します。NSData

次に、Python サーバーはそれを base64 でデコードし、次のように解凍できます。

contacts_data = zlib.decompress(base64.b64decode(contacts_base64), 16)
于 2012-05-12T03:56:33.690 に答える
1

質問で参照したヘッダー ファイルにあるように、deflate は gzip ではありません。gzip はファイル構造ですが、zlib は圧縮ストリームに近いものです。

まず、使用するコードを変更することをお勧めします...

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

これで、圧縮されたデータができました。サーバーにどのように送信していますか?これをHTTP経由でプッシュしていますか?ダイレクトソケット接続のカスタムサービスですか?8 ビット バイトを送信できますか? 7 ビット バイトの送信に限定されますか? ...NURLConnection を使用していますか? ...(圧縮された) データを HTTP 経由でファイルとしてアップロードしようとしていますか?

于 2012-05-12T03:59:31.770 に答える