Revision c3e41146 kamaki/clients/__init__.py
b/kamaki/clients/__init__.py | ||
---|---|---|
123 | 123 |
url += _encode(path[1:] if path.startswith('/') else path) |
124 | 124 |
delim = '?' |
125 | 125 |
for key, val in params.items(): |
126 |
val = quote('' if val in (None, False) else '%s' % val)
|
|
126 |
val = quote('' if val in (None, False) else '%s' % _encode(val))
|
|
127 | 127 |
url += '%s%s%s' % (delim, key, ('=%s' % val) if val else '') |
128 | 128 |
delim = '&' |
129 | 129 |
parsed = urlparse(url) |
130 | 130 |
self.url = _encode(u'%s' % url) |
131 | 131 |
self.path = _encode((u'%s' % parsed.path) if parsed.path else '/') |
132 | 132 |
if parsed.query: |
133 |
self.path += _encode(u'?%s' % parsed.query)
|
|
133 |
self.path += '?%s' % parsed.query
|
|
134 | 134 |
return (_encode(parsed.scheme), _encode(parsed.netloc)) |
135 | 135 |
|
136 | 136 |
def __init__( |
... | ... | |
162 | 162 |
sendlog.info('data size: 0%s' % plog) |
163 | 163 |
|
164 | 164 |
def _encode_headers(self): |
165 |
headers = self.headers
|
|
165 |
headers = dict(self.headers)
|
|
166 | 166 |
for k, v in self.headers.items(): |
167 |
headers[k] = quote(v) |
|
167 |
headers[k] = quote( |
|
168 |
v.encode('utf-8') if isinstance(v, unicode) else v) |
|
168 | 169 |
self.headers = headers |
169 | 170 |
|
170 | 171 |
def perform(self, conn): |
Also available in: Unified diff