У меня есть форма, в которую мне нужно отправлять данные, однако она должна иметь конкретная строка пользовательского агента и заголовки 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 Class, который помечен как совместимый класс с версии 1.5 ... Есть ли простой способ заставить urllib / URLOpener использовать HTTPConnection вместо HTTP? Или есть другое решение, которое мне не хватает для правильных заголовков, которые мне нужны?