ストリームAPIからチャンクデータを解凍するためのヘルプが必要です。gzip圧縮を使用してjson出力を返すGnipストリームAPIに接続しています。出力データを解凍しようとすると、「Zlib :: DataError:不正なヘッダーチェック」というエラーがスローされます。
この問題に非常に近い可能性があります-http ://groups.google.com/group/nodejs/browse_thread/thread/32b9ee7f691a68d9
ここに、参考のためにコードスニペットを添付しました。
require 'rubygems'
require 'curl'
require 'stringio'
require 'zlib'
url = "https://stream.gnip.com:443/accounts/SomeGroup/publishers/twitter/streams/track/Prod.json"
crl = Curl::Easy.new(url)
crl.headers={"Authorization"=>"Basic dmVlcmFzd5kYXJhdmVsLRoaX1Z25hbmFzd5kYhbU4ZXJeC5b26GpbFnW0MzIy", "Accept-Encoding" => "deflate, gzip"}
zstream = Zlib::Inflate.new
crl.on_body { |data| zstream.inflate(data);}
crl.http_get
上記のコードは常に「Zlib::DataError:不正なヘッダーチェック」を返します。gnipはデータチャンクをチャンクごとに返すため、必要なgzip圧縮された出力は最初のチャンクには含まれません。では、gzipで圧縮された出力の必要なチャンクをすべて収集し、それらを解凍して、必要な単一のjson出力を取得するにはどうすればよいですか。
前もって感謝します。Veeraa。