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

Python ❀ 使用代码实现API接口调用详解

文章目录

  • 1. 工具准备
    • 1.1. requests代码包
    • 1.2. BurpSuite抓包工具
  • 2. 操作过程
    • 2.1. 一个简单的请求
      • 2.1.1. Burp获取响应
      • 2.1.2. 转发获取响应
    • 2.2. 构造GET类型URL参数
    • 2.3. 构造请求头部
    • 2.4. 构造POST类型payload数据
      • 2.4.1. urlencoded格式
      • 2.4.2. json格式

本文主要讲解常用API接口如何使用python实现。
API:Application Programming Interface,是应用程序开发接口的缩写,意思是一些预设好的函数或方法,这些预设好的函数或方法允许第三方程序通过网络来调用数据或提供基于数据的服务。

1. 工具准备

Python运行环境:python3.10.2 + PyCharm

1.1. requests代码包

使用pip install requests安装此代码包,pip安装教程

1.2. BurpSuite抓包工具

BurpSuite安装教程,参考1.2章节设置http协议代理为127.0.0.1,端口8080,完成后开启Intercept劫持功能
在这里插入图片描述

在这里插入图片描述

2. 操作过程

2.1. 一个简单的请求

使用python发现一个简单的GET请求,并且通过BurpSuite抓取其请求

import requests# URL
host = 'www.testcode.com'
port = '9201'
url = 'http://' + host + ':' + port# 配置Burp截取配置
proxies = {'http':'http://127.0.0.1:8080'}# 发送请求
reponse = requests.get(url=url, proxies=proxies)print(reponse.text)

代码运行后,会在BurpSuite上回显一条http请求,即为该代码构造的http请求:
在这里插入图片描述

将此请求放入重放或者点击代理的forwafd转发即可看到其具体响应内容。

2.1.1. Burp获取响应

使用BurpSuite的Repeater重放功能就可以直接查看到Response响应。
在这里插入图片描述

2.1.2. 转发获取响应

使用Proxy代理模块中的Forward转发可以将请求发送到服务侧,即可在原软件获得Response响应。
在这里插入图片描述
在这里插入图片描述

2.2. 构造GET类型URL参数

import requestshost = 'www.testcode.com'
port = '9201'
url = 'http://' + host + ':' + port# 构造参数
params = {'username' : 'test','passwd' : 'aaabbbccc1234567890'
}proxies = {'http':'http://127.0.0.1:8080'}reponse = requests.get(url=url, proxies=proxies, params=params)print(reponse.text)

执行结果:在这里插入图片描述
像这种/username=test&passwd=aaabbbccc1234567890的参数格式称之为 urlencoded 格式,主要是以键值对key=value和拼接字符&组合成http请求参数。

2.3. 构造请求头部

参考文章:HTTP协议头部字段梳理

import requestshost = 'www.testcode.com'
port = '9201'
url = 'http://' + host + ':' + portparams = {'username' : 'test','passwd' : 'aaabbbccc1234567890'
}# 构造头部字段,注意大小写!
headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','Referer' : 'www.aaa.bbb.ccc.com'
}proxies = {'http':'http://127.0.0.1:8080'}reponse = requests.get(url=url, proxies=proxies, params=params, headers=headers)print(reponse.text)

执行结果:
在这里插入图片描述

2.4. 构造POST类型payload数据

import requestshost = 'www.testcode.com'
port = '9201'
url = 'http://' + host + ':' + portparams = {'username' : 'test','passwd' : 'aaabbbccc1234567890'
}headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','Referer' : 'www.aaa.bbb.ccc.com'
}# 设置payload
payload = '''
<!--  Edited by XMLSpy®  -->
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
'''proxies = {'http':'http://127.0.0.1:8080'}# 修改类型为POST,设置payload对象编码为UTF-8(中文编码)
reponse = requests.post(url=url, proxies=proxies, params=params, headers=headers, data=payload.encode('utf-8'))print(reponse.text)

执行结果:
在这里插入图片描述

2.4.1. urlencoded格式

urlencoded格式解释详见本文2.2章节内容

import requestshost = 'www.testcode.com'
port = '9201'
url = 'http://' + host + ':' + portparams = {'username' : 'test','passwd' : 'aaabbbccc1234567890'
}headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','Referer' : 'www.aaa.bbb.ccc.com'
}payload = {'key1' : 'value1','key2' : 'value2'
}proxies = {'http':'http://127.0.0.1:8080'}reponse = requests.post(url=url, proxies=proxies, params=params, headers=headers, data=payload)print(reponse.text)

执行结果:
在这里插入图片描述

2.4.2. json格式

参考文章:JSON数据格式与格式化操作详解

import json
import requestshost = 'www.testcode.com'
port = '9201'
url = 'http://' + host + ':' + portparams = {'username' : 'test','passwd' : 'aaabbbccc1234567890'
}headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','Referer' : 'www.aaa.bbb.ccc.com'
}payload = {'key1' : 'value1','key2' : {'key3' : 'value3','key4' : {'key5' : '测试'}}
}proxies = {'http':'http://127.0.0.1:8080'}# payload数据使用json.dumps转化为str,ensure_ascii=False代表关闭非ASCII字符转义
# 若不关闭非ASCII字符转义,则"测试"回显为转义后的ASCII字符"\u6d4b\u8bd5",两者意思一致
reponse = requests.post(url=url, proxies=proxies, params=params, headers=headers, data=json.dumps(payload, ensure_ascii=False).encode())print(reponse.text)

在这里插入图片描述

相关文章:

Python ❀ 使用代码实现API接口调用详解

文章目录 1. 工具准备1.1. requests代码包1.2. BurpSuite抓包工具 2. 操作过程2.1. 一个简单的请求2.1.1. Burp获取响应2.1.2. 转发获取响应 2.2. 构造GET类型URL参数2.3. 构造请求头部2.4. 构造POST类型payload数据2.4.1. urlencoded格式2.4.2. json格式 本文主要讲解常用API接…...

关于KT6368A双模蓝牙芯片的BLE在ios的lightblue大数量数据测试

测试简介 关于KT6368A双模蓝牙芯片的BLE在ios的lightblue app大数量数据测试 测试环境&#xff1a;iphone7 。KT6368A双模程序96B6 App&#xff1a;lightblue ios端 可以打开log日志查看通讯流程 测试数据&#xff1a;长度是1224个字节&#xff0c;单次直接发给KT6368A&a…...

云边协同的 RTC 如何助力即构全球实时互动业务实践

作者&#xff1a;即构科技 由 51 CTO 主办的“WOT 全球技术创新大会 2023深圳站”于 11 月 24 日 - 25 日召开&#xff0c;即构科技后台技术总监肖潇以“边缘容器在全球音视频场景的探索与实践”为主题进行分享。 边缘计算作为中心云计算的补充&#xff0c;通过边缘容器架构和…...

使用python连接elasticsearch

有一个困惑了好久的问题&#xff0c;那就是从python里面连接elasticsearch总是报错。大致长这样 一开始我是看网上把es的安全功能关闭&#xff0c;也就是下面的内容&#xff0c;这个要进入到es的docker中去改config/elasticsearch.yml配置文件&#xff0c;但是这样改了以后kib…...

使用elasticsearchdump迁移elasticsearch数据实战

目录 1.安装nodejs 2.安装elasticsearchdump 3.迁移 4.核对数据 5.注意事项 1.安装nodejs https://ascendking.blog.csdn.net/article/details/135509838 2.安装elasticsearchdump npm install elasticdump -g 3.迁移 elasticdump --inputhttp://用户:密码源ES地址/源…...

指向未来: 量子纠缠的本质是一个指针

指向未来: 量子纠缠的本质是一个指针 概述基本概念理解量子纠缠PythonJavaC 理解波粒二象性PythonJavaC 理解量子隧穿理解宇宙常量PythonJavaC 概述 量子纠缠 (Quantum Entanglement) 是量子系统重两个或多个粒子间的一种特殊连接, 这种连接使得即使相隔很远, 这些粒子的状态也…...

Zookeeper启动报错常见问题以及常用zk命令

Zk常规启动的命令如下 sh bin/zkServer.sh start 启动过程如果存在失败&#xff0c;是没办法直接看出什么问题&#xff0c;只会报出来 Starting zookeeper … FAILED TO START 可以用如下命令启动&#xff0c;便于查看zk启动过程中的详细错误 sh bin/zkServer.sh start-for…...

【数据结构 】哈夫曼编译码器

数据结构-----哈夫曼编译码器 题目题目描述基本要求算法分析 代码实现初始化编码解码打印代码打印哈夫曼树 总结 题目 题目描述 利用哈夫曼编码进行信息通信可大大提高信道利用率&#xff0c;缩短信息传输时间&#xff0c;降低传输成本。 要求&#xff1a;在发送端通过一个编…...

大屏项目:react中实现3d效果的环形图包括指引线

参考链接3d环形图 3d效果的环形图 项目需求实现方式指引线&#xff08;线的样式字体颜色&#xff09; 项目需求 需要在大屏上实现一个3d的环形图&#xff0c;并且自带指引线&#xff0c;指引线的颜色和每段数据的颜色一样&#xff0c;文本内容变成白色&#xff0c;数字内容变…...

【STM32】STM32学习笔记-FlyMCU串口下载和STLINK Utility(30)

00. 目录 文章目录 00. 目录01. 串口简介02. 串口连接电路图03. FlyMCU软件下载程序04. 串口下载原理05. FlyMCU软件其它操作06. STLINK Utility软件07. 软件下载08. 附录 01. 串口简介 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式&#xff0c;因为它简…...

oracle rac 12.2.0.1CPU使用率100%

oracle rac 12.2.0.1 CPU使用率100% 查看是集群的java进程"oracle.ops.opsctl.OPSCTLDriver config database"占用cpu 根据进程号查找父进程,发现是/oracle/GRID/122/perl/bin/perl /oracle/GRID/122/tfa/gcmproddb01/tfa_home/bin/tfactl.pl rediscover -mode full …...

LeetCode、2542. 最大子序列的分数【中等,排序+小顶堆】

文章目录 前言LeetCode、2542. 最大子序列的分数【中等&#xff0c;排序小顶堆】题目及类型思路及代码实现 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领…...

Linux_Docker图形化工具Portainer如何安装并结合内网穿透实现远程访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 本文主要介绍如何本地安装Portainer并结合内网穿透工具实现任意浏览器远程访问管理界面。Portainer 是一个轻量级…...

【Spring Boot 3】【Redis】集成Jedis

【Spring Boot 3】【Redis】集成Jedis 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费…...

C++设计模式(李建忠)笔记3

C设计模式&#xff08;李建忠&#xff09; 本文是学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。 参考链接 Youtube: C设计模式 Gtihub源码与PPT&#xff1a;https://github.com/ZachL1/Bilibili-plus 豆瓣: 设计模式–可复用面向对象软件的基础 文章目录 C设计模…...

计算机考研408的准备

计算机考研408的准备 一&#xff1a;专硕和学硕 计算机的学硕叫做计算机科学与技术&#xff0c;而计算机的专硕叫计算机技术。这么区分的意义就在于我们的就业形势和科研形式。 二&#xff1a;就业形势 由于本科的严重扩招以及课程设置的问题&#xff0c;相当大量的人在毕业…...

2.【Linux】(进程的状态||深入理解fork||底层剖析||task_struct||进程优先级||并行和并发||详解环境变量)

一.进程 1.进程调度 Linux把所有进程通过双向链表的方式连接起来组成任务队列&#xff0c;操作系统和cpu通过选择一个task_struct执行其代码来调度进程。 2.进程的状态 1.运行态&#xff1a;pcb结构体在运行或在运行队列中排队。 2.阻塞态&#xff1a;等待非cpu资源就绪&am…...

【管理篇 / 升级】❀ 13. FortiOS 7.4固件升级新规则 ❀ FortiGate 防火墙

【简介】飞塔防火墙的固件升级一直是所有厂家中最好的。只要有注册官方帐号&#xff0c;有注册设备&#xff0c;并且只要有一台设备在服务期内&#xff0c;即可下载所有型号的所有版本的固件。即使其它设备服务期已过&#xff0c;也可以通过固件文件手动升级&#xff0c;避免防…...

【前端】vue.js从入门到项目实战笔记

文章目录 第三章3.1 插值绑定&#xff08;{{}}&#xff0c; v-html&#xff09;3.1.1 文本插值3.1.2 HTML插值 3.2 属性绑定 v-bind3.2.1 指令v-bind3.2.3 类名和样式绑定 【前端目录贴】 第三章 3.1 插值绑定&#xff08;{{}}&#xff0c; v-html&#xff09; 文本插值中的代…...

flex布局(3)

九、骰子 *{margin:0;padding: 0;box-sizing: border-box; } .flex{display: flex;flex-flow: row wrap;justify-content: space-between;align-items: center;align-content: space-between;padding:20px; } .touzi{width: 120px;height: 120px;background-color: aliceblue;…...

告别高斯模糊!用OpenCV+Python手把手实现引导滤波,保留图像边缘细节(附完整代码)

边缘保持滤波新选择&#xff1a;OpenCV与Python实现引导滤波实战指南 在数字图像处理领域&#xff0c;平滑滤波与边缘保持一直是一对难以调和的矛盾。传统的高斯滤波虽然能有效去除噪声&#xff0c;却常常以牺牲图像细节为代价&#xff1b;双边滤波虽然在一定程度上解决了边缘保…...

从荆楚方言保护到AIGC商业化:ElevenLabs湖北话语音项目落地的4类合规红线(含广电总局最新AI语音备案实操清单)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;从荆楚方言保护到AIGC商业化&#xff1a;ElevenLabs湖北话语音项目的战略定位 湖北话作为荆楚文化的重要语音载体&#xff0c;长期面临传承断层、语料稀缺与数字表达缺位等挑战。ElevenLabs湖北话语音项…...

wpr_simulation机器人仿真平台:架构设计与高级应用实战

wpr_simulation机器人仿真平台&#xff1a;架构设计与高级应用实战 【免费下载链接】wpr_simulation 项目地址: https://gitcode.com/gh_mirrors/wp/wpr_simulation wpr_simulation是一个基于ROS&#xff08;机器人操作系统&#xff09;的完整机器人仿真平台&#xff0…...

Linux查看文件内容

&#x1f3f7;️ 标签&#xff1a;Linux 查看文件 文件类型 Linux命令 运维 后端开发 &#x1f4dd; 适用人群&#xff1a;Linux 新手、运维、后端、学生、实训使用 &#x1f4a1; 亮点&#xff1a;包含 查看文件类型 查看整个文件 查看部分文件&#xff0c;结构清晰、示例可…...

从“佩戴感知”到“无感融入”:UWB vs 镜像视界——空间智能的代际跃迁

从“佩戴感知”到“无感融入”&#xff1a;UWB vs 镜像视界——空间智能的代际跃迁空间智能产业正迎来划时代理念革新&#xff0c;行业认知正式完成从主动佩戴式感知向全域无感化融入的核心转变。以UWB为代表的传统定位技术&#xff0c;始终停留在依托外接设备实现信息采集的初…...

IOT-Tree支持[子站-中心]数据同步功能-轻松支持你的物联网平台

在版本1.9.0开始&#xff0c;IOT-Tree内部移植并开源了中心-子站点的数据同步功能&#xff0c;这个功能已经在我们开发团队的企业用户系统中使用了很长一段时间&#xff0c;足够稳定和可靠。 当前很多物联网系统中&#xff0c;经常有如下需求&#xff1a; 1&#xff09;一些工…...

Markdown怎么转换成txt?5种方法+在线工具对比2026最全指南

在日常工作中&#xff0c;Markdown格式的文件越来越常见&#xff0c;但有时候我们需要将其转换为纯文本格式来适应不同的应用场景。本文将为你详细介绍md转txt的多种方法&#xff0c;包括本地转换、在线工具、编程方案等&#xff0c;帮助你快速找到最适合的解决方案。为什么需要…...

AI原生组织:从「加AI功能」到「长AI基因」,大企业实践与中小团队轻量思路揭秘

AI原生组织&#xff1a;从「加AI功能」到「长AI基因」的本质跃迁与落地路径AI原生组织并非给传统企业贴AI膏药&#xff0c;而是围绕人机协同重新设计业务逻辑、组织架构和激励机制。下面从认知误区切入&#xff0c;结合阿里、华为、传神等企业案例&#xff0c;拆解AI原生组织的…...

社保照片怎么手机搞定?社保照片要求有哪些?2026手机拍摄社保照片完整指南

社保办理、医保激活、养老金申请……这些民生相关的事务都离不开一张正式的证件照。很多人以为必须去照相馆花钱拍摄&#xff0c;但其实用手机就能完全搞定。无论是首次办理社保还是证件过期更新&#xff0c;这篇教程都能帮你省时省钱&#xff0c;拍出符合社保部门要求的标准照…...

多角色对话配音方案:顶伯 一键生成有声剧,支持角色区分

多角色对话配音方案&#xff1a;顶伯 一键生成有声剧&#xff0c;支持角色区分在制作有声剧、播客或短视频时&#xff0c;多角色对话配音往往是最耗时的一环。传统方法需要为每个角色分别录制、剪辑、混音&#xff0c;不仅效率低下&#xff0c;还容易因音色不统一而影响沉浸感。…...