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

这篇具有很好参考价值的文章主要介绍了Python ❀ 使用代码实现API接口调用详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文主要讲解常用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劫持功能
Python ❀ 使用代码实现API接口调用详解,Program Code,python,开发语言,json

Python ❀ 使用代码实现API接口调用详解,Program Code,python,开发语言,json

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请求:
Python ❀ 使用代码实现API接口调用详解,Program Code,python,开发语言,json

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

2.1.1. Burp获取响应

使用BurpSuite的Repeater重放功能就可以直接查看到Response响应。
Python ❀ 使用代码实现API接口调用详解,Program Code,python,开发语言,json

2.1.2. 转发获取响应

使用Proxy代理模块中的Forward转发可以将请求发送到服务侧,即可在原软件获得Response响应。
Python ❀ 使用代码实现API接口调用详解,Program Code,python,开发语言,json
Python ❀ 使用代码实现API接口调用详解,Program Code,python,开发语言,json

2.2. 构造GET类型URL参数

import requests

host = '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)

执行结果:Python ❀ 使用代码实现API接口调用详解,Program Code,python,开发语言,json
像这种/username=test&passwd=aaabbbccc1234567890的参数格式称之为 urlencoded 格式,主要是以键值对key=value和拼接字符&组合成http请求参数。

2.3. 构造请求头部

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

import requests

host = 'www.testcode.com'
port = '9201'
url = 'http://' + host + ':' + port

params = {
    '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)

执行结果:
Python ❀ 使用代码实现API接口调用详解,Program Code,python,开发语言,json

2.4. 构造POST类型payload数据

import requests

host = 'www.testcode.com'
port = '9201'
url = 'http://' + host + ':' + port

params = {
    '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)

执行结果:
Python ❀ 使用代码实现API接口调用详解,Program Code,python,开发语言,json

2.4.1. urlencoded格式

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

import requests

host = 'www.testcode.com'
port = '9201'
url = 'http://' + host + ':' + port

params = {
    '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)

执行结果:
Python ❀ 使用代码实现API接口调用详解,Program Code,python,开发语言,json

2.4.2. json格式

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

import json
import requests

host = 'www.testcode.com'
port = '9201'
url = 'http://' + host + ':' + port

params = {
    '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接口调用详解,Program Code,python,开发语言,json文章来源地址https://www.toymoban.com/news/detail-802425.html

到了这里,关于Python ❀ 使用代码实现API接口调用详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 万字长文讲解调用第三方接口,RestTemplate,urlConnection使用详解,java代码模拟postman发送请求

    业务场景 :在日常开发中,经常需要调用第三方接口,例如调用物流接口,此时需要利用urlConnection或者restTemplate模拟postman发送请求,请求支持加header ,设置content-type支持传递json;请求方式get,post,也可以需要传递文件,或者传递文件流; 下面这个例子就包含日常开发中大

    2024年02月05日
    浏览(55)
  • python:使用RESTful API(flask)调用python程序传递参数,实现Web端调用python程序

    现有一个用python写的程序(或者是一个或几个的函数接口),需要在Web前端调用python写的函数。如果直接用前端java来调用会很不方便,而且会出现各种麻烦的问题,下面给出如何在web前端调用python的接口。 使用python的RESTful API库将python写的函数封装为Web端可调用的接口,在

    2024年01月20日
    浏览(36)
  • Python调用API接口的几种方式

    Python调用API接口的几种方式 相信做过自动化运维的同学都用过API接口来完成某些动作。API是一套成熟系统所必需的接口,可以被其他系统或脚本来调用,这也是自动化运维的必修课。 本文主要介绍python中调用API的几种方式,下面是python中会用到的库。 - urllib2 - httplib2 - pycu

    2024年02月12日
    浏览(40)
  • spring boot java项目整合Scala&Spark,接口api调用方式调用scala代码,配置分享

    版本说明: spring boot: 2.5.9 jdk:1.8 spark:2.4.5 sclala:2.11.12 首先你需要有一个完美的spring boot项目(java版本)能成功运行,这就不赘述了,按照网上的自己搭建吧,然后重要的来了,我捣鼓了两天时间,各样的报错见过了,网上的处理方法要嘛是不全,要嘛是没有用,各种办

    2024年02月10日
    浏览(45)
  • 如何利用python调用API接口获取数据进行测试

    一、Python 可以使用 requests 库来调用 API 接口获取数据。以下是基本的步骤: 1.安装 requests 库 pip install requests 2.导入 requests 库 import requests 3.构建 API 请求的 URL 根据 API 文档,构建请求的URL。 例如,  https://api.example.com/posts  是获取所有帖子的 URL。 4.发送 API 请求 使用  requ

    2024年02月11日
    浏览(40)
  • 如何查询chatgpt-API-KEY接口的使用额度,代码php和python源码

    ChatGPT是一款由OpenAI开发的强大自然语言处理模型,可以帮助开发者实现各种自然语言相关的应用场景。为了能够使用ChatGPT,开发者需要通过OpenAI获取API-KEY,然后才能使用模型接口进行开发。 但是,在使用ChatGPT的过程中,开发者需要时刻关注API-KEY的使用情况,以确保不会因

    2024年02月12日
    浏览(35)
  • 【最新|送API Key】零基础调用Anthropic Claude 3 API接口(Python)

    2024 年 Anthropic 发布了 Claude3,据官方测试比 GPT-4 更好,一夜之间爆火,引得不少开发者体验,本文参考Claude 3官方API,梳理了从零开始调用ClaudeAPI的操作方法。 Claude 是Anthropic 的LLM 应用程序(类似于 ChatGPT)。该库允许使用 API(免费)并在Python 项目中与之交互。 一、必要条

    2024年04月26日
    浏览(31)
  • 5分钟实现调用ChatGPT接口API实现多轮问答

    5分钟实现调用ChatGPT接口API完成多轮问答 最近ChatGPT也是火爆异常啊,在亲自使用了几个月之后,我发现这东西是真的好用,实实在在地提高了生产力。那么对于开发人员来说,有时候可能需要在自己的代码里加入这样一个智能问答的功能,我最近就出现了这样的想法和需求,

    2024年02月03日
    浏览(35)
  • 关于阿里云的API接口调用使用说明以及使用艾格瑞特API接口获取验证码的方法

    需要在API网关控制台创建APP,然后将API授权给APP即可。 使用详情页给的请求示例!!!(替换示例中的AppCode)就可以了 本发明涉及互联网技术领域,具体涉及一种API自动管理和SDK、文档自动生成方法。 背景技术: 伴随着互联网时代的多元化发展,更多技术人员将精力投入

    2023年04月18日
    浏览(36)
  • 使用python调用微步在线接口实现自动化查询IP情报

    目录 一、微步在线接口说明 二、官方示例 三、自动化查询IP情报信息         针对入站场景的IP进行分析, 能够提供IP的地理位置、ASN信息,通过判定规则精准判别IP是否恶意、风险严重级别、可信度级别;识别威胁类型,如:漏洞利用(exploit)、傀儡机(Zombie)、代理

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包