[Python] 3系でBasic認証付きのHTTPリクエストを発行する(urllib.request利用)
こんにちは、@yoheiMuneです。
Python3の
ライブラリとか使うほどでもない小さなプログラムであれば、上の実装が役立つなぁと思います。
21.6. urllib.request — URL を開くための拡張可能なライブラリ
最後になりますが本ブログでは、Python、PHP、サーバー、フロントエンド、インフラ、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
Python3の
urllib.request
で、Basic認証付きのリクエストを発行する機会があって実装したので、それをブログに残しておきたいと思います。注意
PythonのHTTP通信の実装方法は、2系と3系で大きく異なりますのでご注意ください。この記事ではPython3系について記述しています。urllib.requestを用いて、Basic認証付きのHTTPリクエストを発行する
さっそく本題ですが、以下のように実装します。# HTTP通信を行うための標準ライブラリ import urllib.request # Base64を扱うための標準ライブラリ import base64 # 送信先のURL url = 'https://foo.bar.baz.yoheim.net/item/1' # Basic認証の情報 user = 'user' password = 'pass' # Basic認証用の文字列を作成. basic_user_and_pasword = base64.b64encode('{}:{}'.format(user, password).encode('utf-8')) # Basic認証付きの、GETリクエストを作成する. request = urllib.request.Request(url, headers={"Authorization": "Basic " + basic_user_and_pasword.decode('utf-8')}) # 送信して、レスポンスを受け取る. with urllib.request.urlopen(request) as res: data = res.read()ポイントは、Basic認証用のヘッダーを自身で作成するところです。ライブラリを使うと隠蔽されていて分かりませんが、自分で実装してみると仕組みもわかって面白いなーと思います。
ライブラリとか使うほどでもない小さなプログラムであれば、上の実装が役立つなぁと思います。
参考情報
urllib.requestの公式ドキュメントは以下です。詳細はそちらをご確認ください。21.6. urllib.request — URL を開くための拡張可能なライブラリ
最後に
Pythonはちょくちょく仕事で使いますが、もっとノウハウを貯めて、実装にスピードを持たせたいなぁ。Pythonについてもたくさんブログを書きたいと思います。最後になりますが本ブログでは、Python、PHP、サーバー、フロントエンド、インフラ、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!