У меня есть форма, в которую мне нужно опубликовать данные, однако она должна иметь определенную строку пользовательского агента и заголовки 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? Или есть другое решение, которое мне не хватает, чтобы иметь правильные заголовки, которые мне нужны?