import requests
from requests.auth import HTTPBasicAuth
import ssl
CA_CERT = "??/root.crt"
CERT = "??/??????__JP_u????????_client?????.crt"
CERTKEY = "??/??????__JP_u????????_client?????.enc.pem"
KEYPASS = "??"
APIUSER = "ormaster"
APIKEY = "??"
ID = "47103"
url = "https://weborca.cloud.orcamo.jp/api/api01rv2/patientgetv2"
params = {
'id': ID,
'format': 'json'
}
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.load_verify_locations(CA_CERT)
context.load_cert_chain(certfile=CERT, keyfile=CERTKEY, password=KEYPASS)
class SSLAdapter(requests.adapters.HTTPAdapter):
def init_poolmanager(self, *args, **kwargs):
kwargs['ssl_context'] = context
return super(SSLAdapter, self).init_poolmanager(*args, **kwargs)
def cert_verify(self, conn, url, verify, cert):
conn.cert_reqs = 'CERT_REQUIRED'
conn.ca_certs = CA_CERT
if cert:
conn.cert_file, conn.key_file = cert
try:
session = requests.Session()
session.mount("https://", SSLAdapter())
response = session.get(url, params=params, auth=HTTPBasicAuth(APIUSER, APIKEY))
response.raise_for_status()
print(response.text)
except requests.exceptions.SSLError as ssl_err:
print(f"SSLエラー: {ssl_err}")
except requests.exceptions.RequestException as req_err:
print(f"HTTPエラー: {req_err}")