Heim > Artikel > Backend-Entwicklung > Zusammenfassung der HTTP-Anforderungsmethodenbibliotheken in Python
Ich habe kürzlich Python für Schnittstellentests verwendet und festgestellt, dass es in Python viele HTTP-Anforderungsmethoden gibt. Heute habe ich mir etwas Zeit genommen, den relevanten Inhalt zu sortieren und ihn mit Ihnen zu teilen:
1. Python-Autokonfiguration mit Bibliothek ---- urllib2
Pythons eigene Bibliothek urllib2 wird häufiger verwendet:
import urllib2
response = urllib2.urlopen('http://localhost:8080/jenkins/api/json?pretty=true')
print Response.read()
Einfache Get-Anfrage
urllib2 importieren
urllib importieren
post_data = urllib.urlencode({})
response = urllib2.urlopen('http://localhost: 8080/, post_data)
print Response.read()
print Response.getheaders()
Dies ist das einfachste Beispiel für das Senden eines Beitrags durch urllib2. Es gibt viele Codes
2. Pythons eigene Bibliothek - httplib
httplib ist ein http-Anforderungsmodul auf relativ niedriger Ebene, und urlib ist basierend auf httplib gekapselt. Die einfache Verwendung ist wie folgt:
import httplib conn = httplib.HTTPConnection("www.python.org") conn.request("GET", "/index.html") r1 = conn.getresponse() print r1.status, r1.reason data1 = r1.read() conn.request("GET", "/parrot.spam") r2 = conn.getresponse() data2 = r2.read() conn.close()
Einfache Get-Anfrage
Sehen wir uns die Post-Anfrage an
import httplib, urllib params = urllib.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'}) headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} conn = httplib.HTTPConnection("bugs.python.org") conn.request("POST", "", params, headers) response = conn.getresponse() data = response.read() print data conn.close()
, um zu sehen, ob sie zu kompliziert ist. Sie müssen das Dokument jedes Mal lesen, wenn Sie schreiben. Werfen wir einen Blick auf das dritte.
3 Drittanbieter-Bibliothek – Anfragen
Das Senden einer Get-Anfrage ist ganz einfach:
print requests.get('http://localhost:8080).text
Nur ein Satz, werfen wir einen Blick auf die Post-Anfrage
payload = {'key1': 'value1', 'key2': 'value2'} r = requests.post("http://httpbin.org/post", data=payload) print r.text
Es ist auch ganz einfach.
Lassen Sie uns noch einmal einen Blick darauf werfen, ob Sie sich authentifizieren möchten:
url = 'http://localhost:8080' r = requests.post(url, data={}, auth=HTTPBasicAuth('admin', 'admin')) print r.status_code print r.headers print r.reason
Ist es nicht viel einfacher als urllib2, und Anfragen kommen mit JSON-Parsing? Das ist großartig
http-Anfrage in Python
import urllib params = urllib.urlencode({key:value,key:value}) resultHtml = urllib.urlopen('[API or 网址]',params) result = resultHtml.read() print result