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 send
        in 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 requests


r=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 requests

r=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 requests

params={
    "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 requests

json_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 requests

form_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)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【论文通读】AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation

AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation 前言AbstractMotivationFrameworkConversable AgentsConversation Programming ApplicationA1: Math Problem SolvingA2: Retrieval-Augmented Code Generation and Question AnsweringA3: Decision…

HarmonyOS 应用开发之FA模型启动Stage模型UIAbility

本文介绍FA模型的三种应用组件如何启动Stage模型的UIAbility组件。 PageAbility启动UIAbility 在PageAbility中启动UIAbility和在PageAbility中启动PageAbility的方式完全相同。 import featureAbility from ohos.ability.featureAbility; import { BusinessError } from oh…

Roxlabs代理服务:智能化数据采集的加速器

TOC 一、引言 在这个数据驱动的时代&#xff0c;无论是企业还是个人&#xff0c;对于准确、及时的信息获取都有着前所未有的需求。网络数据采集已成为洞察市场趋势、分析竞争对手动态、优化营销策略的关键手段。然而&#xff0c;面对全球范围内的网站和服务&#xff0c;如何高…

数据结构与算法 循环双链表基本运算与对称算法

一、实验内容 1、实现循环双链表的各种基本运算的算法 &#xff08;1&#xff09;初始化循环双链表h &#xff08;2&#xff09;依次采用尾插法插入a,b,c,d,e元素 &#xff08;3&#xff09;输出循环双链表h&#xff1b; &#xff08;4&#xff09;输出循环双链表h长度&am…

Linux初学(十一)中间件

一、web服务 1.1 中间件简介 中间件其实就是一类软件&#xff0c;中间件的作用是让用户可以看到一个网页 总结&#xff1a;客户端可以向服务端发送请求&#xff0c;服务器端会通过中间件程序来接收请求&#xff0c;然后处理请求&#xff0c;最后将处理结果返回给客户端 1.2 中…

vscode初始化node项目

首先需要安装node环境&#xff0c;推荐直接使用nvm 安装node&#xff0c;方便切换node版本 1.npm init 初始化node项目 在命令行输入npm init指令 根据指令创建完成后会在当前目录下生成一个package.json文件&#xff0c;记住运行npm init执行的目录必须是一个空目录 2.创建…

qupath再度更新:使用WSInfer进行深度学习

Open and reusable deep learning for pathology with WSInfer and QuPath Open and reusable deep learning for pathology with WSInfer and QuPath | npj Precision Oncology (nature.com) 以前&#xff1a;数字病理图像分析的开源软件qupath学习 ①-CSDN博客 背景 深度学…

idea从零开发Android 安卓 (超详细)

首先把所有的要准备的说明一下 idea 2023.1 什么版本也都可以操作都是差不多的 gradle 8.7 什么版本也都可以操作都是差不多的 Android SDK 34KPI 下载地址&#xff1a; AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载 …

没有与参数列表匹配的构造函数“cv::VideoWriter::VideoWriter”实例

今天在使用Visual Studio开发与OpenCV相关的程序时&#xff0c;遇到了这样的情况: 第一个参数的下方被打上了红波浪线&#xff0c;我本能的觉得是第一个参数出的问题&#xff0c;于是改成了这样: 红线依然存在&#xff0c;没有消失&#xff0c;把鼠标放在红线下方&#xff0c…

OpenHarmony error: signature verification failed due to not trusted app source

问题&#xff1a;error: signature verification failed due to not trusted app source 今天在做OpenHarmony App开发&#xff0c;之前一直用的设备A在测试开效果&#xff0c;今天换成了设备B&#xff0c;通过DevEco Studio安装应用程序的时候&#xff0c;就出现错误&#xf…

【笔记】动⼿学深度学习(花书)|| Aston Zhang Mu Li Zachary C. LiptonAlexander J. Smola

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 前言 第一章 深度学习简介 第二章 P 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言本书…

场效应管(MOS管)知识点总结

目录 一、场效应管(FET)基础知识 1.名称 2.电路符号 3.分类 4.应用场景 5.厂商介绍 二、MOS管G、S、D以及判定 三、耗尽型场效应管工作原理 (耗尽型&#xff1a;depletion mode) 四、NMOS与PMOS的区别 (区别&#xff1a;difference) (多晶硅&#xff1a;polysilicon) …

K8S中部署yaml文件(如Java项目)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

Java学习笔记(23)

多线程 并发 并行 多线程实现方式 1.继承Thread类 自己创建一个类extends thread类 Start方法开启线程&#xff0c;自动执行重写之后的run方法 2.实现runable接口 自己创建一个类implements runnable Myrun不能直接使用getname方法&#xff0c;因为这个方法是thread类的方法…

Kafka入门到实战-第四弹

Kafka入门到实战 Kafka集群搭建官网地址Kafka概述使用Kraft搭建Kafka集群更新计划 Kafka集群搭建 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://kafka.apache.org/Kafka概述 Apache Kafka 是一个开源的分布式事件…

ubuntu2204配置zabbix6.4高可用

zabbix6.4-HA 配置keepalived配置haproxy数据库高可用配置zabbix-server配置proxy配置客户端agent 本实验VMware搭建zabbix6.4高可用集群&#xff0c;搭配haproxykeepalived。 master&#xff0c;node节点搭建haproxykeepalibed主备并配置vip地址 三台控制节点搭建数据库高可用…

rabbitMQ版本问题与下载

都到现在了&#xff0c;大家不会安装东西还是不看版本吧 云服务器买的是centos7&#xff0c;而erlang在24版本后不支持centos7了 所以需要找24版本以下的erlang&#xff0c;而不同erlang对应不同rabbitmq所以需要对应 下载erlang 说实话&#xff0c;自己安装&#xff0c;还是…

无论PC还是Mac,都能畅快地使用移动硬盘 Mac使用NTFS移动硬盘不能读写

如果你拥有一台Mac设备&#xff0c;总会遇到尴尬的那一刻——你在Mac上用得好好的移动硬盘怎么都不能被PC识别到。又或者你朋友在PC上用得好好的移动硬盘&#xff0c;连上你的Mac后&#xff0c;Mac里的文件死活就是拷贝不进移动硬盘里。这种坑&#xff0c;相信大多数使用Mac的小…

pycharm复习

1.基础语法 1.字面量 2.注释&#xff1a; 单行注释# 多行注释" " " " " " 3.变量&#xff1a; 变量名 变量值 print&#xff1a;输出多个结果&#xff0c;用逗号隔开 4.数据类型&#xff1a; string字符串int整数fl…

信息工程大学第五届超越杯程序设计竞赛(同步赛)题解

比赛传送门 博客园传送门 c 模板框架 #pragma GCC optimize(3,"Ofast","inline") #include<bits/stdc.h> #define rep(i,a,b) for (int ia;i<b;i) #define per(i,a,b) for (int ia;i>b;--i) #define se second #define fi first #define e…