Ich habe Python kürzlich für Schnittstellentests verwendet und festgestellt, dass es in Python viele HTTP-Anforderungsmethoden gibt. Heute werde ich mir die Zeit nehmen, den relevanten Inhalt zu sortieren und ihn mit Ihnen zu teilen. Der spezifische Inhalt ist wie folgt:
1. Pythons eigene Bibliothek – ---urllib2
Pythons integrierte Bibliothek urllib2 wird häufig wie folgt verwendet:
import urllib2
response = urllib2.urlopen('http://localhost :8080/jenkins/api/json?pretty=true')
print Response.read()
Einfache Get-Anfrage
import urllib2
import urllib
post_data = urllib.urlencode({})
response = urllib2.urlopen('http://localhost:8080/, post_data )
Antwort drucken. read()
Antwort drucken.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", "" , Parameter, Header)
response = conn.getresponse()
data = Response.read()
Druckdaten
conn.close()
Denken Sie? es ist zu viel? Es ist kompliziert. Sie müssen das Dokument jedes Mal lesen, wenn Sie schreiben. Schauen wir uns das dritte Dokument an .get('http://localhost:8080).text
Nur ein Satz, schauen wir uns die Post-Anfrage an
payload = {'key1': 'value1', 'key2': 'value2'}
r = request.post("http://httpbin.org/post", data=payload)
print r.text
ist ebenfalls sehr einfach.
Schauen Sie noch einmal nach, wenn Sie sich authentifizieren möchten:
url = 'http://localhost:8080'
r = request.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 URL]',params)
result = resultHtml.read()
Ergebnis drucken