import json import requests import time from datetime import datetime # 读取JSON文件 with open('headurl.json', 'r', encoding='utf-8') as f: patients = json.load(f) # 创建日志文件 log_filename = f'api_requests_{datetime.now().strftime("%Y%m%d_%H%M%S")}.log' success_count = 0 fail_count = 0 def log_result(medical_sn, p_name, success, response, api_name): global success_count, fail_count timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") status = "成功" if success else "失败" if success: success_count += 1 else: fail_count += 1 with open(log_filename, 'a', encoding='utf-8') as f: f.write(f"[{timestamp}] API: {api_name}, 体检编号: {medical_sn}, 姓名: {p_name}, 状态: {status}\n") f.write(f"响应内容: {json.dumps(response, ensure_ascii=False)}\n") f.write("-" * 80 + "\n") # 第一个API请求函数 def request_first_api(medical_sn, card_id, p_name): url = "https://pacs.gw12320.com/adminInspect/admin-api/inspect/patient/updatepersonimg" params = { "medicalSn": medical_sn, "cardId": card_id } headers = { 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.43.3', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate, br', 'Connection': 'keep-alive', 'Host': 'pacs.gw12320.com' } try: print(f"正在请求第一个API - {p_name} 的报告,请等待接口返回...") response = requests.get(url, params=params, headers=headers, verify=False) response.raise_for_status() result = response.json() success = result.get("code", -1) == 0 log_result(medical_sn, p_name, success, result, "第一个API") return success except Exception as e: error_msg = str(e) print(f"第一个API请求失败: {error_msg}") log_result(medical_sn, p_name, False, {"error": error_msg}, "第一个API") return False # 第二个API请求函数 def request_second_api(medical_sn, p_name): url = "https://pacs.gw12320.com/adminInspect/admin-api/inspect/patient/generateReport" params = {"medicalSn": medical_sn} headers = { 'Content-Type': 'application/json', 'User-Agent': 'PostmanRuntime/7.43.3', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate, br', 'Connection': 'keep-alive', 'Host': 'pacs.gw12320.com' } try: print(f"正在请求第二个API - {p_name} 的报告,请等待接口返回...") response = requests.get(url, params=params, headers=headers, verify=False) response.raise_for_status() result = response.json() success = result.get("code", -1) == 0 log_result(medical_sn, p_name, success, result, "第二个API") return success except Exception as e: error_msg = str(e) print(f"第二个API请求失败: {error_msg}") log_result(medical_sn, p_name, False, {"error": error_msg}, "第二个API") return False # 禁用SSL警告 import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) # 主处理循环 print("开始处理请求...") for patient in patients: medical_sn = patient["medicalSn"] card_id = patient["cardId"] p_name = patient["pName"] print(f"\n开始处理: {p_name} (体检编号: {medical_sn})") # 调用第一个API first_success = request_first_api(medical_sn, card_id, p_name) print(f"第一个API处理完成: {'成功' if first_success else '失败'}") # 等待1秒 time.sleep(1) # 调用第二个API second_success = request_second_api(medical_sn, p_name) print(f"第二个API处理完成: {'成功' if second_success else '失败'}") print("\n所有请求处理完成!") print(f"成功请求数: {success_count}") print(f"失败请求数: {fail_count}") print(f"详细日志已保存到: {log_filename}")