ホームページ  >  記事  >  バックエンド開発  >  Python の http リクエスト メソッド ライブラリの概要

Python の http リクエスト メソッド ライブラリの概要

高洛峰
高洛峰オリジナル
2016-10-17 13:07:221340ブラウズ

最近インターフェースのテストに Python を使用していて、Python には多くの http リクエスト メソッドがあることがわかりました。今日は時間をかけて関連する内容を整理し、その内容を共有します。

1 Python 独自のライブラリ urllib2

Python 独自のライブラリ urllib2 がよく使われます。

import urllib2

response = urllib2.urlopen('http://localhost:8080) /jenkins/api/json?pretty=true')

print response.read()

単純な取得リクエスト

import urllib2

import urllib

post_data = urllib.urlencode({})

response = urllib2。 urlopen('http://localhost:8080/, post_data)

print response.read()

print response.getheaders()

これは、urllib2 が投稿を送信する最も単純な例です。コードがたくさんあります

2. Python 独自のライブラリ - httplib

httplib は比較的低レベルの http リクエスト モジュールであり、urlib は httplib に基づいてカプセル化されています。簡単な使い方は次のとおりです:

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()

単純なgetリクエスト

postリクエストを見てみましょう

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()

複雑すぎると思いますか?書くたびにドキュメントを読む必要があります。3 番目のドキュメントを見てみましょう

サードパーティ ライブラリ -- リクエスト

get リクエストの送信は非常に簡単です:

print requests.get('http://localhost:8080).text

一文だけ、見てみましょう投稿リクエスト

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
print r.text

もとてもシンプルです。

認証したい場合は、もう一度見てみましょう:

url = 'http://localhost:8080'
r = requests.post(url, data={}, auth=HTTPBasicAuth('admin', 'admin'))
print r.status_code
print r.headers
print r.reason

urllib2 よりもはるかに簡単ではありませんか。リクエストには json 解析が含まれます。これは素晴らしいです

Pythonでのhttpリクエスト

import urllib
params = urllib.urlencode({key:value,key:value})
resultHtml = urllib.urlopen('[API or 网址]',params)
result = resultHtml.read()
print result


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。