Функция urllib.urlencode
ожидает последовательность пар ключ-значение или тип отображения, например dict
:
>>> urllib.urlencode([('a','1'), ('b','2'), ('b', '3')])
'a=1&b=2&b=3'
Чтобы выполнить HTTP-запрос POST SOAP, необходимо оставить BLOB-объект SM_TEMPLATE как естьи установите его в качестве тела POST, затем добавьте заголовок Content-Type для кодировки и набора символов тела POST.Например:
data = SM_TEMPLATE
headers = {
'Content-Type': 'application/soap+xml; charset=utf-8'
}
req = urllib2.Request(site, data, headers)