news 2026/8/29 6:54:01

【PYTHON】模拟请求接口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【PYTHON】模拟请求接口

【PYTHON】模拟请求接口

      • 1. 如果是请求https,请加上verify=False
      • 2. header中的中横线问题,需要修改为数字键盘上的-,否则会报错
      • 3. 请求代码
      • 4. verify设置本地证书

1. 如果是请求https,请加上verify=False

2. header中的中横线问题,需要修改为数字键盘上的-,否则会报错

UnicodeEncodeError:'ascii'codec can't encode character '\u2011'inposition7: ordinal notinrange(128)

可以使用如下函数找出异常字符

defscan_all_headers(headers:dict):"""扫描headers字典,找出key和value中所有非ASCII字符"""forkey,valinheaders.items():# 扫描 key(重点!本次报错就在key)forpos,charinenumerate(key):iford(char)>127:print(f"\n>>> 异常在【Header Key】")print(f"key完整字符串:{repr(key)}")print(f"位置pos={pos}字符={repr(char)}ord={ord(char)}")# 扫描 values_val=str(val)forpos,charinenumerate(s_val):iford(char)>127:print(f"\n>>> 异常在【Header Value】key={key}")print(f"value片段:{repr(s_val[:80])}")print(f"位置pos={pos}字符={repr(char)}ord={ord(char)}")

3. 请求代码

defget_call_sno():driver=connect_chrome()driver.get("https://xxxxx/")time.sleep(4)# 获取selenium浏览器全部cookiecookies=driver.get_cookies()# 方式A:转成requests可以直接用的cookies字典req_cookies={}forckincookies:req_cookies[ck["name"]]=ck["value"]# 方式B:拼接Cookie请求头字符串(有些接口只认header里的Cookie)cookie_header="; ".join(f"{c['name']}={c['value']}"forcincookies)# ==========2. requests发起POST请求 ==========now=datetime.now()requestdate=now.strftime("%Y%m%d")ts_ms=int(time.time()*1000)url_post=f"xxxxx&_t={ts_ms}"print(url_post)headers_raw={"accept":'application/json, text/javascript, */*; q=0.01',"accept-encoding":'gzip, deflate, br, zstd',"accept-language":'zh-CN,zh;q=0.9',"Cookie":cookie_header,"Content-Type":"text/plain; charset=UTF-8","host":"xxxxx","origin":"https://xxxxx/","referer":"text/plain; charset=UTF-8","sec-ch-ua":'"Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"'}scan_all_headers(headers_raw)# exit(0)headers=clean_header_dict(headers_raw)data='{xxxxxxx}'# 这样做的目的是为了避免:SyntaxError: f-string: expressions nested too deeplypost_data_str=data.replace("20260817",requestdate)resp=requests.post(url_post,data=post_data_str,cookies=req_cookies,# 二选一,传cookies字典headers=headers_raw,timeout=15,verify=False)print("状态码",resp.status_code)data=json.loads(resp.text)# print("返回内容", resp.text)sno=data.get("xx")[0].get("xx")[0][0].get("xx")returnf"{sno}"

4. verify设置本地证书

从浏览器中导出证书,选择详细信息-选择最底层证书-导出-选择证书链-修改crt格式为pem格式,然后使用如下代码使用证书请求

resp=requests.post(url_post,data=redata,# cookies=req_cookies, # 二选一,传cookies字典headers=headers_raw,timeout=15,verify=r"D:\pythonauto\chromeDriver\xxx.pem")
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 6:51:12

ROS2机器人建模仿真实战:从URDF到Gazebo的完整链路

简介:机器人操作系统(ROS2)是智能机器人开发的核心框架,而建模仿真则是验证算法与系统设计的关键环节。URDF作为描述机器人几何与关节关系的标准格式,配合xacro宏定义实现参数化建模,Gazebo物理引擎则通过插…

作者头像 李华
网站建设 2026/8/29 6:46:30

MySQL安装与Navicat连接指南:破解版风险与免费替代方案

如果你最近刚好准备学 MySQL,大概率会遇到一个尴尬的处境:网上搜 MySQL 安装教程,版本新旧不一;跟着步骤装好了,又不知道该用什么工具去看数据;想让操作更省事,于是去搜 Navicat 下载安装&#…

作者头像 李华
网站建设 2026/8/29 6:43:05

数学建模竞赛中MATLAB微分方程符号解实战:从dsolve使用到论文写作

1. 项目概述:微分方程符号解在数学建模中的核心地位如果你正在准备数学建模竞赛,无论是国赛、美赛还是亚太杯,有一个工具和一类问题你几乎无法绕开:那就是MATLAB,以及如何用它来求解微分方程,特别是寻找其符…

作者头像 李华
网站建设 2026/8/29 6:41:25

WinForm集成PaddleOCR v3:ONNX Runtime C#部署实战

简介:OCR(光学字符识别)是一种将图像中文字转换为可编辑文本的关键技术,其核心依赖于检测、识别与方向分类等多阶段深度学习模型协同工作。在桌面端应用中,WinForm凭借稳定性和低资源占用成为政务、金融等国产化场景的…

作者头像 李华
网站建设 2026/8/29 6:39:30

单片机毕业设计-语音识别与红外满溢检测智能垃圾分类装置研发 基于 LU-ASR01 的四分类智能垃圾桶硬件系统设计(013105)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/8/29 6:39:27

Yolo 小白入门 29:训练前先验货——用可视化揪出错框、错类和空标签

Yolo 小白入门 29:训练前先验货——用可视化揪出错框、错类和空标签 [!NOTE] 你现在位于《Yolo 全速入门到精通【持续更新中】》的 第三章 数据集基本功。这一篇不追求堆满参数,而是带你比较“标注可视化质检”的最小可验证闭环,并能说清它在数据、模型与业务之间的位置。我…

作者头像 李华