需求:由于项目需要,需要下载图片,然后根据下载环境标识图片,转发给一个服务器
1.下载并解码
建立URL连接
conn = HTTPConnection(self.host,timeout=60)
conn.request('GET',url,headers=self.headers)
#print 'http_get -> wait the response...'
#获取http响应
response = conn.getresponse()
#解析头,如果是gzip格式解压缩获取原始数据
content_encoding = response.getheader('Content-Encoding','')
if content_encoding == 'gzip':
buf = StringIO(response.read())
infor = GzipFile(fileobj=buf).read()
else:
infor = response.read()
2.重新编码
步骤1中,获取到的是字节码 binary字节码形式,infor 可以不用再编码,能够直接在网络上发送。
添加头的话,例如
flag = “a001”
#格式化字符
fmt = '!4s'
#转换成网络字节码
flag_binary = pack(fmt,flag)
#拼接头和图片码流就生成了编码结构
data = flag_binary + img