У меня есть форма, в которую мне нужно отправлять данные, однако она должна иметь определенную строку пользовательского агента и заголовки HTTP / 1.1 (не только хост, он явно ищет HTTP / 1.1 в строке POST.)
Я пытался сделать это следующим образом:
class AppURLopener(urllib.FancyURLopener):
version = "The User Agent String"
urllib._urlopener = AppURLopener()
def send_data(url, kv)
params = urllib.urlencode(kv)
f = urllib.urlopen(url, params)
data = f.read()
f.close()
Однако, это отправляется через HTTP / 1.0 с заголовком Host :. Глядя на источник urllib (и urllib2) Похоже, что все пути кода создают экземпляр объекта HTTPLib класса HTTP, который помечен как совместимый класс с 1.5 ... Есть ли простой способ, чтобы urllib / URLOpener использовал HTTPConnection вместо HTTP? Или мне не хватает другого решения, чтобы иметь нужные заголовки?