戻ってきました。:) 再び、URL の gzip 圧縮されたコンテンツを取得して、それらを gunzip しようとしています。今回はパイソンで。コードの #SERVER セクションは、gzip 圧縮されたデータを生成するために使用しているスクリプトです。Javaで動作するため、データは良好であることが知られています。コードの #CLIENT セクションは、(最終的な JSON 解析のために) そのデータを試して読み取るためにクライアント側で使用しているコードの一部です。ただし、この転送のどこかで、gzip モジュールは作成したデータの読み取り方法を忘れています。
#SERVER
outbuf = StringIO.StringIO()
outfile = gzip.GzipFile(fileobj = outbuf, mode = 'wb')
outfile.write(data)
outfile.close()
print "Content-Encoding: gzip\n"
print outbuf.getvalue()
#CLIENT
urlReq = urllib2.Request(url)
urlReq.add_header('Accept-Encoding', '*')
urlConn = urllib2.build_opener().open(urlReq)
urlConnObj = StringIO.StringIO(urlConn.read())
gzin = gzip.GzipFile(fileobj = urlConnObj)
return gzin.read() #IOError: Not a gzipped file.
その他の注意事項:
outbuf.getvalue()
と同じurlConnObj.getvalue()
です と同じですurlConn.read()