使用POST将zlib压缩数据发送到服务器

时间:2018-04-28 12:11:41

标签: python python-2.7 zlib

我想使用POST请求将zlib文件的压缩数据发送到服务器。以下是我尝试使用的代码

boto3

但是我收到以下错误orig = open('fileName', 'r').read() comp = zlib.compress(orig, 9) req = Request(url, comp) urlopen(req)

我尝试了UnicodeDecodeError: 'utf8' codec can't decode byte 0x85 in position 2: invalid start byte,但这也行不通。我在某个位置获得相同的comp.encode('utf-8')。我该如何解决我的问题?

1 个答案:

答案 0 :(得分:0)

urllib2.Request data参数状态的文档:

  

数据应该是标准application / x-www-form-urlencoded格式的缓冲区。

您可以使用urllib.quote编码缓冲区:

>>> orig = 'aaaaabbbccddxddaaabb'
>>> comp = zlib.compress(orig, 9)
>>> comp
'x\xdaKL\x04\x82\xa4\xa4\xa4\xe4\xe4\x94\x94\x8a\x94\x140\x07\x00Q\x19\x07\xc1'
>>> quoted = quote(comp)
>>> quoted
'x%DAKL%04%82%A4%A4%A4%E4%E4%94%94%8A%94%140%07%00Q%19%07%C1'
>>> req = Request('http://example.com', quoted)