pytest--python的一种测试框架--pycharm创建项目并进行接口请求

前言

学习request的使用,在用之前,用官方文档提供的接口:https://api.github.com/events;
ctrl+鼠标左键可以进入被调用函数源码,可以看到第一个参数URL是必须参数,params是选填,**kwargs是关键字参数。

def get(url, params=None, **kwargs):r"""Sends a GET request.:param url: URL for the new :class:`Request` object.:param params: (optional) Dictionary, list of tuples or bytes to sendin the query string for the :class:`Request`.:param \*\*kwargs: Optional arguments that ``request`` takes.:return: :class:`Response <Response>` object:rtype: requests.Response"""return request("get", url, params=params, **kwargs)

输入代码,运行,报错:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl’ module is compiled with ‘OpenSSL 1.1.0h 27 Mar 2018’. See: https://github.com/urllib3/urllib3/issues/2168

原因:

因为你正在尝试使用的 urllib3 版本(2.0+)需要依赖的 OpenSSL 版本至少为 1.1.1,但是你当前的环境中 OpenSSL 的版本是 1.1.0h,比所需的版本低

解决方法:

1、更新你的 OpenSSL 版本:你可以尝试更新你的环境中的 OpenSSL 版本到 1.1.1 或者更高。但我发现,在某些系统中,你可能需要编译和安装 OpenSSL,老是报错需要进一步解决该问题带来的其他问题,所以推荐方案二。
2、降级你的 urllib3 版本:如果更新 OpenSSL 不方便,你也可以考虑降级你的 urllib3 版本到一个与你当前 OpenSSL 版本兼容的版本。你可以用以下的命令来降级 urllib3:pip install 'urllib3<2.0'

import requestsr=requests.get("https://api.github.com/events")
print(r.json())#接口的返回json
print(r.status_code)#接口状态返回码
print(r.text)#接口返回的文本

运行结果:这是运行成功的

在这里插入图片描述

一、requests模块进行get请求带参数(两种方法)

法一:

import requests
params={"shouji":"13456755448","appkey":"e1d1e3c8fb254b33"
}
r=requests.get(url="https://api.binstd.com/shouji/query",params=params)
print(r.status_code)
print(r.json())

法二:

import requestsr=requests.get(url="https://api.binstd.com/shouji/query",params={"shouji":"13456755448","appkey":"e1d1e3c8fb254b33"
})
print(r.status_code)
print(r.json())

二、requests模块进行post请求(三种传参方式)

没有专门传参模块,需要通过kwargs关键字去传。**

法1

import requestsparams={"shouji": "13456755448","appkey": "e1d1e3c8fb254b33"
}
r=requests.post(url="https://api.binstd.com/shouji/query",params=params)
print(r.status_code)
print(r.json())

法2

一般工作中post接口请求多用body里面的json去传
其实不管是params去传还是json去传,它里面的参数值其实都是一个字典。

import requestsjson_data={"title":"foo","body":"bar","userId":1
}r=requests.post(url="https://api.binstd.com/shouji/query",json=json_data)
print(r.status_code)
print(r.json())

法3

import requestsform_data={"text":"hello",
}r=requests.post(url="https://dict.youdao.com/keyword/key",data=form_data)
print(r.status_code)
print(r.json())

在这里插入图片描述

三、灵魂之问

如果拿到一个接口,我想在POSTMAN里面去先进行一个调试,那么params、data、json三种方式该怎么去选?
**答:**可以手动尝试,无非就这三种方式,总能试出来的。这是一种方式,也可以去看一下背后的原理,可以去看一下一个接口的定义,该定义由后端开发去做,他在做的时候就设置好了请求方式以及接口参数传递的方式,看一下源码就好。开发会有业界的规范,比如get请求就用params去传,post请求就用data或json(一般现在大多数都用json)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/782299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记15:PWM输出

系列文章目录 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记01&#xff1a;赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记02&#xff1a;开发环境安装 嵌入式|蓝桥杯STM32G431&#xff08;…

css3之2D转换transform

2D转换transform 一.移动&#xff08;translate)(中间用&#xff0c;隔开&#xff09;二.旋转&#xff08;rotate)&#xff08;有单位deg)1.概念2.注意点3.转换中心点&#xff08;transform-origin)&#xff08;中间用空格&#xff09;4.一些例子(css三角和旋转&#xff09; 三…

Spring Boot 使用详解

Spring Boot 使用详解 本节将详细介绍如何使用 Spring Boot。涵盖的主题包括构建系统、自动配置和如何运行应用程序。我们还将讨论一些 Spring Boot 最佳实践。尽管 Spring Boot 没有什么特别之处(它只是您可以使用的另一个库),但遵循以下一些建议会使您的开发过程更加轻松…

基于微信小程序医院挂号系统的设计与实现(论文+源码)_kaic

摘 要 进入21世纪网络和微信小程序得到了飞速发展&#xff0c;并和生活进行了紧密的结合。目前&#xff0c;网络的运行速度以达到了千兆&#xff0c;覆盖范围更是深入到生活中的脚脚落落。这就促使微信小程序的发展。微信小程序可以实现远程处理事务&#xff0c;远程提交工…

深度学习基础模型之Mamba

Mamba模型简介 问题&#xff1a;许多亚二次时间架构(运行时间复杂度低于O(n^2)&#xff0c;但高于O(n)的情况)&#xff08;例如线性注意力、门控卷积和循环模型以及结构化状态空间模型&#xff08;SSM&#xff09;&#xff09;已被开发出来&#xff0c;以解决 Transformer 在长…

mac怎么删除python

mac 默认安装了python2&#xff1b;自己后面又安装了python3&#xff1b;为了方便&#xff0c;现在想将python3换成Anaconda3。 Anaconda是一个开源的Python发行版本&#xff0c;其包含了conda、Python等180多个科学包及其依赖项。 Python3安装之后&#xff0c;在系统中不同目…

40个学习网站合集

1、Google&#xff1a;https://google.com 作为王牌浏览器&#xff0c;相比打开电脑就会进入谷歌浏览器&#xff0c;里面的谷歌搜索很好用。 在这里插入图片描述 2、CSDN— 开发者齐聚的网站&#xff1a;https://www.csdn.net/ CSDN不用多说&#xff0c;老牌专业 IT 技术社区&…

概率论经典题目-二维随机变量及分布--由概率密度求分布函数和概率

解答&#xff1a; 由概率密度函数求解分布函数的公式可知&#xff1a; 辅助图形加以确定积分上下限

酷得单片机方案 2.4G儿童遥控漂移车

电子方案开发定制&#xff0c;我们是专业的 东莞酷得智能单片机方案之2.4G遥控玩具童车具有以下比较有特色的特点&#xff1a; 1、内置充电电池&#xff1a;这款小车配备了可充电的电池&#xff0c;无需频繁更换电池&#xff0c;既环保又方便。充电方式可能为USB充电或者专用…

Linux 给网卡配置ip

ip addr | grep eth9 ifconfig eth9 10.0.0.2 netmask 255.255.255.0 up

Zookeeper(九)客户端的启动流程

目录 一 ZooKeeper会话的创建与连接1.1 会话的创建1.1.1 ClientWatchManager1.1.2 ConnectStringParser1.1.3 HostProvider1.1.4 ClientCnxn 1.2 会话的连接1.2.1 SendThread1.2.2 eventThread 二 ZooKeeper会话的响应2.1 接受服务端响应 三 ClientCnxn 详解3.1 Packet3.2 队列…

vue/html 集成对接 汉王esp370(标准版/谷歌版)

汉王eqp370版本介绍&#xff08;所有下面的资料都在我主页文件里面&#xff09; 标准版&#xff1a;只支持IE版本浏览器 谷歌版&#xff1a;支持谷歌版本浏览器 区分汉王版本的软件&#xff1a;已提供 如何区分版本 集成标准版方式 原理&#xff1a;exe的ocx组件安装后&#xf…

计算机视觉的应用27-关于VoVNetV2模型的应用场景,VoVNetV2模型结构介绍

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用27-关于VoVNetV2模型的应用场景&#xff0c;VoVNetV2模型结构介绍。VoVNetV2&#xff08;Visual Object-Driven Representation Learning Network Version 2&#xff09;是一种深度学习模型&#x…

PyQt6从入门到放弃

PyQt6从入门到放弃 安装PyQt6 pip install PyQt6# 查看QT和PyQT的版本 from PyQt6.QtCore import QT_VERSION_STR from PyQt6.QtCore import PYQT_VERSION_STR print(QT_VERSION_STR) print(PYQT_VERSION_STR)PyQt6模块 PyQt6类由一系列模块组成包括QtCore、QtGui、QtWidgets…

rustup update 升级rust时异常 directory does not exist: ‘share/doc/rust/html‘ 解决方法

最近把原来的老版本rust升级为最新版本&#xff0c; 转悠了半天给我报一个 目录不存在异常而升级失败。 异常信息&#xff1a; info: rolling back changes error: failure removing component rust-docs-x86_64-apple-darwin, directory does not exist: share/doc/rust/ht…

建立动态MGRE隧道的配置方法

目录 一、实验拓扑 1.1通用配置 1.1.1地址配置 1.1.2静态缺省指向R5&#xff0c;实现公网互通 1.1.3MGRE协议配置 1.1.4配置静态 二、Shortcut方式 三、Normal方式&#xff08;非shortcut&#xff09; 四、总结 一、实验拓扑 下面两种配置方法皆使用静态方式 1.1通用配…

Sentinel原理及实践

Sentinel 是什么 Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 为什么使用sentinel&…

文件的顺序读写——顺序读写函数——fgets、fgetc、fputs、 fputc

✨✨ 欢迎大家来到莉莉的博文✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 目录 一、fgetc和fputc函数 1.1 fputc 1.2 fgetc 二、fputs和fgets函数 2.1 fputs函数 2.2 fgets函数 一、fgetc和fputc函数 1.1 fputc 返回类…

基于单片机自行车码表系统设计

**单片机设计介绍&#xff0c;基于单片机自行车码表系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机自行车码表系统设计主要涵盖了硬件设计、软件设计以及功能实现等多个方面。以下是对该设计概要的详细描述&#xff1a…

【自用】uniapp全局统一样式scss管理

【自用】uniapp全局统一样式scss管理 uniapp移动端全局common.scss样式统一类名管理 page {background: #F7F7F7; }view {box-sizing: border-box; }.b-btn {width: 640rpx;height: 92rpx;background: linear-gradient(141deg, #3167F1 0%, #31A1F1 100%);border-radius: 100r…