sudsをgzipに対応させる.
PythonのsudsっていうSOAPライブラリを使ってるんだけど,gzip対応してない. ちょっと速度がほしいので,gzipも使えるようにした.
#!/usr/bin/env python # # gzip_suds_test.py # # Author: Hiromasa Ihara (miettal) # URL: http://miettal.com # Created: 2014-05-22 # # note:suds-jurko from suds.client import Client # for gzip transport from suds.transport.http import HttpTransport import gzip from StringIO import StringIO class GzipTransport(HttpTransport) : def send(self, request): request.headers['Accept-encoding'] = 'gzip' result = HttpTransport.send(self, request) if result.headers['content-encoding'] == 'gzip' : buf = StringIO(result.message) f = gzip.GzipFile(fileobj=buf) result.message = f.read() return result if __name__ == '__main__': wsdl_url = "..." soap_client = Client(wsdl_url, transport=GzipTransport())
ここを参考にした. http://stackoverflow.com/questions/3947120/does-python-urllib2-automatically-uncompress-gzip-data-fetched-from-webpage おわり.