我们想要捕获&在将HTTP响应发送回客户端之前,修改代理内部的HTTP响应。我们正在使用python代理(http://code.google.com/p/python-proxy/)。当我们从代理套接字/缓冲区读取HTTP流时,HTTP内容/主体被编码/压缩。我们需要解压缩/解码HTTP内容/正文,修改内容并将其压缩/编码回&将其返回给代理,以将修改后的响应转发回客户端。我们如何使用python实现这一点?任何帮助都将不胜感激。
注意:我们不能对URL进行任何直接调用,因为此代码将在Proxy中运行。
import gzip
from io import BytesIO
def compress(data):
if type(data) != type(b'bytes'):
data = bytes(data, 'UTF-8')
return gzip.compress(data)
def decompress(data):
with gzip.GzipFile(fileobj=BytesIO(data)) as fh:
try:
unzipped = fh.read()
except struct.error:
return None
return unzipped
假设几件事:
- 内容编码为gzip
- 您实际上可以从代理库中检索数据
- 您已经以正确的方式收集了数据(如果分块等),以便对其进行解压缩