Suchtpunkt beim Durchlaufen des http-Proxys mit grundlegender Authentifizierung in Python

Suchtpunkt beim Durchlaufen des http-Proxys mit grundlegender Authentifizierung in Python

2.7.x-Serie. Wenn die Basisauthentifizierung angewendet wird, wenn der http-Proxy mit urllib2 durchlaufen wird.

Wenn der Zielserver authentifiziert ist

client => proxy => target
↑ Hier

Dies ist in Ordnung, wenn Sie die Referenz oder die Referenz imitieren, die beim normalen Google herauskommt.

#!/usr/bin/env python

import urllib2

proxy = urllib2.ProxyHandler({
  'http': 'http://username:password@proxy:8080'
})
auth = urllib2.HTTPBasicAuthHandler()
opener = urllib2.build_opener(proxy, auth)
urllib2.install_opener(opener)

conn = urllib2.urlopen('http://target/')
print conn.read()

Dadurch wird der Header "Proxy-Authorization" hinzugefügt.

Wenn die Basisauthentifizierung auf den Proxyserver angewendet wird

client => proxy => target
↑ Hier

In diesem Fall müssen Sie den Header "Authorization" anstelle des Headers "Proxy-Authorization" hinzufügen. Unabhängig davon, wie viel ich gesucht und versucht habe, ist die Methode mit Handler nicht herausgekommen Es kann nicht geholfen werden, also habe ich es geschafft, es zu lösen, indem ich den Header manuell berechnet und hinzugefügt habe.

#!/usr/bin/env python

import urllib2
import base64

proxy = urllib2.ProxyHandler({
  'http':'http://proxy:8080'
})
opener = urllib2.build_opener(proxy)
base64string = base64.encodestring('%s:%s' % ("username", "password"))
opener.addheaders = [ ("Authorization", "Basic %s" % base64string) ]

conn = opener.open('http://target/')
print conn.read()

Ich frage mich, ob es mit Handler eine richtige Lösung gibt.

Apropos

pip requests Wenn benutzt Es war das Verhalten von "Proxy-Authorization".

#!/usr/bin/env python

import requests

proxies = {
    "http": "http://username:password@proxy:8080",
}

ret = requests.get("http://target/", proxies=proxies)
print ret

Recommended Posts

Suchtpunkt beim Durchlaufen des http-Proxys mit grundlegender Authentifizierung in Python
Senden Sie HTTP mit dem Standardauthentifizierungsheader in Python
Der süchtig machende Punkt des "Bayes-Denkens in Python"
BASIC-Authentifizierung mit Python-Flasche
Grundlegende Authentifizierung mit verschlüsseltem Passwort (.htpasswd) mit Flasche in Python
Scraping mit Selen in Python (Basic)
Erreichen Sie eine grundlegende Authentifizierung mit CloudFront Lambda @ Edge mit Python 3.8
Vorsichtsmaßnahmen beim Umgang mit Kontrollstrukturen in Python 2.6
Über einen Authentifizierungs-Proxy für die Kommunikation mit Python urllib3
Mailbox-Auswahl beim Abrufen von Google Mail mit imaplib von Python
Japanische Ausgabe beim Umgang mit Python im Visual Studio
Grundlegende Sortierung in Python
HTTP-Anfrage in Python
HTTP-Kommunikation mit Python
Vorsichtsmaßnahmen bei der Verwendung von Python mit AtCoder
Dinge, die Sie bei der Verwendung von CGI mit Python beachten sollten.
Brüche in Python anzeigen
Schaben mit Selen in Python
Mit Python erlerntes Refactoring (Basic)
Betreiben Sie LibreOffice mit Python
Debuggen mit pdb in Python
Verwenden Sie den HTTP-Cache in Python
[Python] Verwenden von OpenCV mit Python (Basic)
Umgang mit Sounds in Python
Scraping mit Tor in Python
Tweet mit Bild in Python
Achtung bei os.mkdir in Python
Kombiniert mit Ordnungszahl in Python
Fehler beim Spielen mit Python
Einfacher HTTP-Server mit Python
[Python] [SQLite3] Betreiben Sie SQLite mit Python (Basic)
Wie man Japanern nicht entgeht, wenn man mit json in Python umgeht
Ausgabe von Firebase-Authentifizierungstoken in Python und Token-Validierung mit Fast API