当前位置: 首页 > news >正文

python rest请求、requests

文章目录

    • 安装依赖
        • get请求
        • post请求
    • 发送带file文件的请求
      • 发送带file文件的请求-1、表单
      • 发送带file文件的请求-2、二进制
    • 其他
      • 文档

测试url可以自己造,这里演示用httpbin网站提供的,比较方便。

安装依赖

pip install requests
get请求
importrequests# 目标 URL (这是一个测试用的接口,返回请求信息)url="https://httpbin.org/get"# 定义 URL 参数 (字典格式)params={"page":"1","limit":"10","search":"python"}# 定义请求头 (模拟浏览器,防止部分网站反爬虫)headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"}try:# 发送 GET 请求# params 参数会自动拼接到 url 后面response=requests.get(url,params=params,headers=headers,timeout=5)# 检查状态码是否为 200ifresponse.status_code==200:print("✅ 请求成功!")# 获取 JSON 格式的数据data=response.json()print("📄 返回数据:",data)else:print(f"❌ 请求失败,状态码:{response.status_code}")exceptrequests.exceptions.RequestExceptionase:print(f"❌ 发生异常:{e}")
post请求
importrequests url="https://httpbin.org/post"# 表单数据payload={"username":"admin","password":"123456","remember":"true"}try:response=requests.post(url,data=payload,timeout=5)ifresponse.status_code==200:print("✅ 表单提交成功!")json_data=response.json()# 查看服务器接收到的 form 数据print("📝 服务器接收到的表单:",json_data.get('form'))else:print(f"❌ 提交失败:{response.status_code}")exceptExceptionase:print(f"❌ 发生错误:{e}")

发送带file文件的请求

主要有两种形式:
1、表单
2、二进制

注意发送前要用json.dumps()序列化下。

发送带file文件的请求-1、表单

importrequestsimportjson url="https://httpbin.org/post"# 测试接口# 1. 准备 JSON 数据结构json_payload={"user_id":12345,"description":"这是文件的元数据","tags":["test","python"]}# 2. 准备文件流 (以二进制读取)# 假设我们有一个名为 'test.jpg' 的文件try:withopen('test.jpg','rb')asf:# files 字典的值可以是元组: ('文件名', 文件对象, 'MIME类型')files={'file_field':('test.jpg',f,'image/jpeg')}# data 字典的值必须是字符串,所以要把 json 对象转成字符串data={'json_data':json.dumps(json_payload)}# 3. 发送请求# 注意:不要手动设置 Content-Type,requests 会自动生成 boundaryresponse=requests.post(url,files=files,data=data)ifresponse.status_code==200:print("✅ 上传成功")# 打印服务器收到的数据以验证res_json=response.json()print("📄 收到的表单数据:",res_json.get('form'))print("📦 收到的文件信息:",res_json.get('files'))else:print(f"❌ 失败:{response.status_code}")exceptFileNotFoundError:print("❌ 文件未找到,请确保目录下有 test.jpg")

发送带file文件的请求-2、二进制

importrequestsimportjson url="https://httpbin.org/post"json_payload={"mode":"stream","version":"1.0"}try:withopen('test.jpg','rb')asf:# 1. 将 JSON 转为字符串放入请求头# 注意:HTTP 头通常不支持复杂嵌套的 JSON,建议扁平化,或者确保后端能解析headers={"Content-Type":"application/octet-stream",# 声明是二进制流"X-Json-Meta":json.dumps(json_payload)# 自定义头存放 JSON}# 2. 直接将文件对象传给 dataresponse=requests.post(url,data=f,headers=headers)ifresponse.status_code==200:print("✅ 流上传成功")# 查看请求体长度是否匹配print(f"📊 发送字节数:{len(response.request.body)}")else:print(f"❌ 失败:{response.status_code}")exceptFileNotFoundError:print("❌ 文件未找到")

其他

文档

httpbin测试url网站:
https://httpbin.org/#/

http://www.jsqmd.com/news/601340/

相关文章:

  • 嵌入式开发高效注释工具与最佳实践
  • G-Helper架构深度解析:华硕笔记本硬件控制系统的开源实现
  • Lingbot-Depth-Pretrain-ViTL-14 助力网络安全:异常场景深度感知分析
  • 上周热点回顾(3.30
  • 4步精通Windows安卓子系统:面向开发者与普通用户的效率提升指南
  • 携程任我行礼品卡变现指南:靠谱回收渠道推荐 - 团团收购物卡回收
  • YimMenu:GTA V安全增强与体验优化完整指南
  • OpenClaw+Phi-3-vision-128k-instruct:个人旅行规划自动化助手
  • ESP32开发板与4G模块的实战搭配指南
  • 空洞骑士模组管理器Scarab:3分钟轻松安装复杂模组的终极指南
  • 构建AI编程助手:利用Lingbot-Depth-Pretrain-VitL-14生成代码注释中的场景深度示意图
  • ILI9342_T4驱动库:Teensy 4.x高性能LCD显示后端
  • Data Engineering - Management Preparation
  • 解锁论文写作新姿势:好写作AI,你的学术创作超级英雄
  • 避坑指南:为什么你的Matlab编译Ncorr总失败?盘点TDM-GCC版本、环境变量与Matlab兼容性的那些坑
  • 数字逻辑设计新范式:Logisim-Evolution全方位实践指南
  • OpenClaw敏感信息过滤:Qwen3-32B任务中的隐私保护机制
  • 打破输入法壁垒:如何让你的个人词库在全平台自由流动
  • Phi-4-mini-reasoning保姆级教学:PyTorch 2.8+Transformers加载全流程
  • 揭密携程任我行礼品卡回收变现的最佳平台与流程 - 团团收购物卡回收
  • Adobe-GenP:如何用通用补丁工具解锁Adobe CC全系列软件?
  • 猫抓扩展终极攻略:一键下载全网视频音频资源
  • 新手必看,利用快马生成mobaxterm中文设置图文指南
  • OpenClaw+百川2-13B-4bits:个人博客内容自动生成与发布方案
  • 如何突破网盘限速?3大核心方案+5种实战技巧
  • Godot游戏资源解包全攻略:3步轻松提取PCK文件内容
  • 告别重复劳动!Z-Image-ComfyUI程序化调用,一键生成多张图片
  • 环境迁移指南:将OpenClaw+百川2-13B-4bits从本地搬到云服务器
  • CH-SIMS数据集解析:细粒度多模态情感分析在中文场景下的实践与优化
  • FRCRN(damo/speech_frcrn_ans_cirm_16k)企业级部署:Prometheus监控指标接入