(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请求 的相关文章

  • 设置 $_POST 变量

    我有一个使用 POST 的表单和一个变量 如何在 POST 中设置该变量 以便在提交表单后 我仍然可以获得该变量 我刚刚尝试过 POST variable variable 最终变成空的 您应该将该变量作为隐藏字段放入表单中 或者使用会话变
  • Jquery:按下输入类型=提交时防止重新加载页面

    我在 MVC 3 Razor 项目中有以下代码 div class user info div
  • 如何使用 Curl 将文件从另一台服务器上传到另一台服务器?

    如何在 Shell 脚本和 PHP 中使用 Curl 将文件从另一台服务器上传到另一台服务器 我有一个 txt 文件存储在存储 Shell 脚本的服务器中 现在我希望将该 txt 文件上传到另一台服务器的特定文件夹中 2台服务器已经连接 t
  • 从 EditText 获取文本

    在我的应用程序中 我有一个 EditText 我想在它失去焦点时从中获取值 我该怎么做 Thanks 沿着这个思路应该可行 EditText setOnFocusChangeListener new View OnFocusChangeLi
  • 同时使用 POST 和 GET 的 HttpWebRequest

    我需要将用户重定向到http www someurl com id 2 http www someurl com id 2使用 POST 方法 是否可以 如果是 那么如何 现在我有以下内容 它正确转发 POST 数据 但它删除了 id 2
  • 使用 libsoup 进行 HTTP POST

    我想使用 libsoup 执行一个简单的 POST 请求 我想要发送数据的网站的 api 只需要一个名为 内容 的字段 使用curl我这样做 curl si F content mycontent http mywebsite org ap
  • 获取 QComboBox 的所有项目 - PyQt4 (Python)

    我有很多QComboBoxes 在某个时刻 我需要获取特定的每个项目QComboBox迭代 虽然我只能有一个与中的项目相对应的项目列表QComboBox 我宁愿直接从小部件本身获取它们 有大量的QComboBoxes每个都有很多项目 有没有
  • Laravel 输入:get() 不起作用

    我正在尝试在 Laravel 4 中使用 post 函数 我的表单有许多字段 在提交时 会转到控制器中的 post 函数 问题是 表单中的字段名称之间有空格 例如 Type 1 是输入的名称 中间有一个空格 现在 当我尝试通过执行以下操作来
  • getActivity() 在我的 ActivityInstrumentationTestCase2 类中返回 null

    我希望我的应用程序使用 ActivityInstrumentationTestCase2 在代码中执行以下测试 问题是 getActivity 方法返回 null 这会导致包含 getActivity 的行正下方的行出现 NullPoint
  • 在嵌套有序字典 python 中查找给定键的值

    我试图从嵌套的 OrderedDict 中查找给定键的值 关键点 我不知道这个字典会嵌套多深 我正在寻找的键的名称是不变的 它将位于字典中的某个位置 我想返回本例中名为 powerpoint color 的键的值 mydict Ordere
  • Python请求响应以utf-8编码但无法解码

    我正在尝试使用 python 抓取我的messenger com facebook Messenger 聊天记录 并且我使用谷歌浏览器开发工具来查看聊天历史记录的 POST 请求 并且我已将整个标头和正文复制为请求可以使用的格式 我得到 H
  • Wordpress 数组显示特定类别的帖子并显示帖子摘录和功能

    大家好 正在寻找 WordPress 帮助 我需要放置一个简单的查询 数组来显示来自某只猫的帖子 例如 新闻 其中将包含帖子特色图像 有人可以帮忙吗 Gary Try this a href title a
  • 检查隐藏是否等于 true 或 false jQuery

    我有这个 div attr hidden true i tried var a div attr hidden var b div attr hidden val var c div hidden var a div disabled 我只
  • 无法在服务器端 NodeJS 启用 CORS

    我无法启用CORS在服务器端 我的前端和后端服务器有不同的端口 服务器端的实现方式如下 http createServer function req res Here you can create your data response in
  • 在弹性搜索中使用 GET/POST 时的不同结果

    我正在通过 Elastic Search Head 插件尝试弹性搜索 当我通过 POST 提交查询时 结果符合预期 但是 当我使用 GET 尝试相同的查询时 我总是会返回索引中的所有值 那么 如何通过 GET 将查询传递到弹性搜索服务器 以
  • Zend url:获取参数始终保留在 url 中

    我在使用带有 get 参数的 Zend url 帮助器时遇到一些问题 在一个视图中 我有分页 它在 get 中发送额外的参数 所以在 url 中 所以没关系 但这是不行的 即使我更改页面 参数也始终保留在 url 中 事实上 zend ur
  • 防止刷新时提交双重表单

    我有一个简单的问题 我知道当用户使用 Post Redirect Get 模式重新加载页面时 我可以防止表单重新提交自身 但我的问题是 如果我将用户重定向回提交表单的同一页面 这种模式是否有效 我的意思是 我不想将用户重定向到另一个页面 请
  • 表单未使用 AJAX 提交

    再次更新 如果有人关心的话 我之前发布的解决方案由于某种原因停止工作 我在 ajax 请求中包含了 beforeSend 并将验证表单的 js 部分粘贴到其中 现在就像一个魅力 form on submit function e e pre
  • Android:从 https url 获取响应

    问候 我正在开发一个 Android 应用程序 需要通过 https 打开一个 url 带有 POST 参数 并获取响应 我有一个自签名证书 这让情况更加复杂 我还需要接受cookies 有人知道从哪里开始吗 提前谢谢了 Android 附
  • 如何在使用cmake完成make后打印消息?

    我正在尝试使用 CMake 完成构建过程后打印消息 我只是想在之后通知用户make命令已完成 没有任何错误 我该怎么做 我试过add custom target 但我无法选择何时跑步 另外 我尝试过add custom command 它再

随机推荐