(8)requests发起get/post请求

2023-05-16

一、基本概念

1、什么是接口

前后端数据传输的通道。

2、http请求的接口

协议+域名(ip)+接口地址+请求参数

3、http请求的要素

请求地址+请求方法+请求数据

二、request请求接口

1、安装

pip install requests

2、发起get请求

import requests

data = {"key1": "val1", "key2": "val2"}
# 第一种方式,把数据与域名分开,数据要单独给到params参数
# res = requests.get(url="https://httpbin.org/get", params=data)
# 第二种方式,数据与域名放在一起请求
res = requests.get(url="https://httpbin.org/get?key1=val1&key2=val2")
print(res.text)

3、发起post请求

post(url,data=None,json=None,**kwargs)

参数解释:

data:默认是form表单的请求编码格式

        "Content-Type": "application/x-www-form-urlencoded"

       传的是一个表单"form": {"key1": "val1", "key2": "val2"}。如下

import requests

data1 = {"key1": "val1", "key2": "val2"}

# "Content-Type": "application/x-www-form-urlencoded"
# data传参是,使用form表单的请求编码格式,传的是一个表单"form": {"key1": "val1", "key2": "val2"}
res = requests.post(url="https://httpbin.org/post", data=data1)
print(res.text)

json: 默认使用json请求编码格式

        "Content-Type": "application/json"

        传的是一个字典"data": "{\"key1\": \"val1\", \"key2\": \"val2\"}"。如下

import requests

data1 = {"key1": "val1", "key2": "val2"}

# "Content-Type": "application/json",
# json传参是,使用json请求编码格式,传的是一个字典"data": "{\"key1\": \"val1\", \"key2\": \"val2\"}"
# 最后拿到的就是json格式
res = requests.post(url="https://httpbin.org/post", json=data1)
print(res.text)

 **kwargs:不定长参数,可以自定义请求头header或者cookie等

举例:使用自定义的请求头,如果设置了请求头“Content-Type”,就按照设置的编码方式传参(不建议使用)

import requests

data1 = {"key1": "val1", "key2": "val2"}
# 设置一个header
header = {"Content-Type": "application/json"}
# 我们使用data参数,默认是使用"Content-Type": "application/x-www-form-urlencoded"请求方式
# 设置header来自定义"Content-Type": ""application/json"
res = requests.post(url="https://httpbin.org/post", data=data1, headers=header)
print(res.text)

 如下结果,我们看到请求方式被自定义成功

4、get与post的区别

        安全性

        1、get传参是放在url中,相对来说不安全

        2、post请求数据是藏起来的,放在body里边,比较安全

        使用场景

        3、get请求一般是用来获取数据

        4、post请求一般用于提交数据

        参数长度

        5、get请求一般参数有长度限制,由服务端来限制

        6、post请求参数也有长度限制,也是由服务器来限制。但是post的参数长度一般要大于get

        幂等性:就是说同一个接口同一个参数请求N遍返回结果都不会变

         7、get请求都是幂等的

         8、post一般是不幂等的(测试时要考虑这个问题,支付、注册、提现这种要做幂等处理)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(8)requests发起get/post请求 的相关文章

随机推荐