【Python】urllibでプロキシ設定
urllib
で社内のプロキシサーバーを経由して外部接続という処理を実装しました。
外部接続先のAPIでBasic認証が必要で、少し詰まったのでメモ。
requests
モジュールだと、プロキシ設定 + 接続先でBasic認証が上手く動かなかった為、urllib
モジュールを使用しています。
上手いやり方などあれば、教えてください😊
実装
import os import base64 import json import urllib.request def exec_proxy_request(usename: str, passwd: str, token: str): user_pass = f'{usename}:{passwd}' header = { # アクセス先のBasic認証 'Authorization': f"Basic {base64.b64encode(user_pass.encode('utf-8')).decode('utf-8')}" # プロキシサーバの認証情報、必要に応じて 'Proxy-Authorization': f'Bearer {token}' } req = urllib.request.Request('<アクセス先URL>', headers=header, method='GET') # プロキシの設定 req.set_proxy('xxx.proxy.jp', 'http') req.set_proxy('xxx.proxy.jp', 'https') with urllib.request.urlopen(req) as res: status_code = res.getcode() res_body = res.read().decode('utf-8') if not status_code == 200: raise Exception(res_body) json_data = json.loads(res_body) return json_data