必看!!!客户端requests与服务端request收发请求

news2024/9/23 21:23:32

当使用代码进行接口访问的时候,请求的发送与请求的接受使用的参数应该怎么如何传输能够请求到正确的响应呢?

一、使用GET请求发送,客户端与服务端的参数传输与接受。

1、服务端,首先使用web框架写一个简单的接口,接收两个参数,page和size,这也是分页参数,返回数据:状态码、信息、参数值。

@bp.route('/translation/', methods=['GET'])
def translation():
        args = request.args
        page = args.get('page')
        size = args.get('size')
        response = {'status' : 200,'message' : '返回的参数',
                    'size': size,'page': page
        }
        print(response)
        return Response(json.dumps(response))

 服务端接收到的数据

 2、客户端或者请求端是怎么发送的请求的,使用requests库进行模拟发送。urlencode 方法是用来对url进行编码的可以将字典,编译成page=1&size=50格式

import requests
import json
from urllib.parse import urlencode

def translation():
	params = {
		'page': 1,
		'size':50
	}
	param_encode = urlencode(params)
	url = 'http://127.0.0.1:5000/auth/translation' + '?' + param_encode
	response = requests.get(url=url)
	print(json.loads(response.text))

客户端接受数据:

二、POST请求发送,客户端与服务端的参数传输与接收

使用post发送请求一半有两种方式,一种是使用form-data格式,我们就前端代码的form标签。一种是json格式,因为requests库的post方法有data与json两个参数,web框架的request,也是两个参数,request.form, request.json。

1、使用json格式来进行传送参数,定义接收参数,username,password,返回数据:状态码,信息,与参数值

@bp.route('/translation/', methods=['POST'])
def translation():
    username = request.json.get('username')
    password = request.json.get('password')
    response = {'status': 200, 'message': '返回的参数',
                'username': username, 'password': password
                }
    print(response)
    return Response(json.dumps(response))

服务端接收数据:

 2、客户端使用requests.post 方法,在浏览器请求的使用一般使用的参数名称是payload。json可以直接使用字典,也可以使用字符串。前端传参一般是ajax方法

import requests
import json

def translation():
	json_data = {
		'username': '张三',
		'password':'123456'
	}
	url = 'http://127.0.0.1:5000/auth/translation/'
	response = requests.post(url=url, json=json_data)
	print(json.loads(response.text))

客户端接收数据:

 3、使用form-data格式来进行传参定义接收参数,username,password,返回数据:状态码,信息,与参数值

@bp.route('/translation/', methods=['POST'])
def translation():
    username = request.form.get('username')
    password = request.form.get('password')
    response = {'status': 200, 'message': '返回的参数',
                'username': username, 'password': password
                }
    print(response)
    return Response(json.dumps(response))

服务端接收数据:

 4、客户端使用requests.post 方法使用data参数,一般是字典格式,前端一般使用form > input标签,postman,也是使用参数+值的方法

import requests
import json

def translation():
	form_data = {
		'username': '张三',
		'password':'123456'
	}
	url = 'http://127.0.0.1:5000/auth/translation/'
	response = requests.post(url=url, data=form_data)
	print(json.loads(response.text))

客户端接受数据:

总结:使用form-data 与json 传输的方向很相似,值是吧参数data=与json= 作为修改,服务端的接受也只是request.form 与request.json的变更而已。

注意点:request.from与request.json 不能够同时接收参数,不能够同时存在。不然会报错,服务端会出现400的错误,客户端会出现400 Bad Request

客户端出错:

<!doctype html>
<html lang=en>
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>Failed to decode JSON object: None</p>

服务端出错:

127.0.0.1 - - [24/Nov/2022 15:02:06] "POST /auth/translation/ HTTP/1.1" 400 -

Xmind 思维导图:

 

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

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

相关文章

FineReport常用配置和方法

目录 1、隐藏参数面板的小箭头&#xff1a; 1、隐藏参数面板的小箭头&#xff1a; 查看小箭头的class&#xff0c;css设置如下属性&#xff1a; 隐藏按钮&#xff1a; // 旧版 $(.parameter-container-collapseimg-up).hide(); // 新版 $(.report-main-parameter-container-…

浙大MBA考研经验分享:名校梦不可负~

上大学的时候考研失败&#xff0c;对于没能进入浙大求学一直是我心里的遗憾&#xff01;但是毕业以来至今工作三年&#xff0c;职场上的经历让我意识到持续学习提升的重要性。一边工作一边备考&#xff0c;对于基础普通的我来说&#xff0c;一年备战能够以211分的成绩成功上岸浙…

Collection体系集合

一、Collection体系结构 Collection体系结构的根接口&#xff0c;代表一组对象&#xff0c;称为“集合”。 List接口的特点&#xff1a;有序、有下标、元素可重复。 Set 接口的特点&#xff1a;无序、无下标、元素不能重复。 二、Collection父接口 特点&#xff1a;代表一组…

分布式计算模型Mapreduce实践与原理剖析(一)

第一章 MapReduce核心理论 1.1 什么是MapReduce MapReduce 是一个分布式运算程序的编程框架&#xff0c;是用户开发“基于 Hadoop 的数据应用” 的核心框架 。 MapReduce 核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff0c;并行运…

[短的文章] Spring Boot 日志创建使用、日志级别、@Slf4j、日志持久化——Spring Boot 系列

前言&#xff1a; 想必日志大家伙在项目开发调试过程中常会使用&#xff0c;这篇文章我们来一起探讨一下 Spring Boot 项目中日志的定义与使用&#xff0c;主要针对以下几个方面重点叙述 日志级别 日志框架进行日志定义 日志持久化 1 日志简述 1.1 为什么使用日志 日志大家在…

机器学习-逻辑回归

机器学习-基础知识 机器学习-线性回归 机器学习-逻辑回归 机器学习-聚类算法 机器学习-决策树算法 机器学习-集成算法 机器学习-SVM算法 文章目录逻辑回归1. 线性逻辑回归1.1. 理论基础1.2. 逻辑回归模拟步骤1.2.1. 数据集1.2.2. 模拟逻辑回归类模块1.2.3. 测试模块1.2.4. 数据…

PN532开发指南(uart)

开发环境 STM32F103C8T6 STM32f103c8t6最小系统板&#xff08;typec接口&#xff09; STM32CUBEMX PN532模块 一、NFC简介 NFC(Near Field Communication)近场通信&#xff0c;是一种短距高频的无线电技术&#xff0c;在13.56MHz频率运行于20厘米距离内。其传输速度有106Kb…

懒人福利:只需一行代码,导入所有的 Python 库

前言 今天给大家介绍一个懒人 Python 库—— Pyforest 。 使用一行代码&#xff0c;就能导入所有的 Python 库(本地已经安装的)。 GitHub 地址 https://github.com/8080labs/pyforest &#xff08;文末送读者福利&#xff09; / 01 / 介绍 Python 因为有着成千上万个功能…

paper 阅读: An introduction to ROC analysis

发布于2005年&#xff0c;附论文链接如下&#xff1a; https://ccrma.stanford.edu/workshops/mir2009/references/ROCintro.pdf 之前一直都是从各种博客上了解ROC的&#xff0c;最近才看到这一篇paper。 写在前面 用 True&#xff08;T&#xff09;和 False&#xff08;F&…

BGP进阶:BGP 基础实验配置

实验拓扑 实验需求 R1、R2、R3属于AS123&#xff0c;R4属于AS 400&#xff1b;AS123内的R1、R2、R3运行OSPF&#xff0c;通告各自直连接口&#xff0c;注意OSPF域的工作范围&#xff1b;R3-R4之间建立eBGP邻居关系&#xff0c;R2暂时不运行BGP&#xff0c;R1-R3之间建立iBGP邻…

MCE | D-萤光素 Protocol 在手,生物发光检测无忧!

■ Q: D-萤光素的作用原理 D-萤光素 (D-Luciferin) 是萤火虫萤光素酶 (Firefly Luciferase) 的化学发光底物。在ATP 和萤光素酶存在下&#xff0c;萤光素能够被氧化发光 (图 1)。当萤光素过量时&#xff0c;发光亮度与萤光素酶浓度呈正相关。通过萤光素/萤光素酶生物发光体系&…

小程序容器技术加快推动国产操作系统“上车”

计算机是当前乃至未来的基础工具&#xff0c;而负责管理计算机硬件与软件资源、提供必须的人机交互机制的操作系统无疑是整个计算机的核心系统软件。 可以说&#xff0c;操作系统是当前一个国家提升综合实力过程中必须要攻克、掌握的核心技术之一。 国产操作系统多为以Linux为…

猫狗肠道菌群—“主子们”的健康新领域

随着生活水平提升&#xff0c;我国养宠人士逐年增多。数据显示&#xff0c;我国城镇养宠人士达到6844万多人&#xff0c;且仍在不断增长。 其中养猫人群数占比59.5%&#xff0c;养狗人群数占比51.7%&#xff0c;养水族类占比8.3%&#xff0c;养爬行类宠物的占比为5.8%&#xff…

Linux 文件操作(三) —— 获取并打印某个文件的属性(文件类型、执行权限、文件大小)

目录 1、获取文件属性 stat / lstat / fstat (1) 参数 path (2) 参数 buf (3) 返回值 2、获取并打印某个文件的属性 (1) 获取文件类型 (2) 获取文件权限 (3) 获取文件大小 (4) 获取上一次的访问时间 (5) 最终代码 1、获取文件属性 stat / lstat / fstat stat / lsta…

[附源码]java毕业设计疫情防控期间网上教学管理

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

数据分析可视化之模型介绍

一 前言 “数据分析可视化”这条术语实现了成熟的科学可视化领域与较年轻的信息可视化领域的统一。 数据分析可视化&#xff1a;是指将大型数据集中的数据以图形图像形式表示&#xff0c;并利用数据分析和开发工具发现其中未知信息的处理过程。 数据可视化已经提出了许多方法&…

【软件工程导论】1.软件过程模型

软件过程模型什么是软件过程模型包括瀑布模型特点演化模型特点增量模型特点原型模型类型使用策略废弃策略追加策略螺旋模型特点什么是软件过程模型 又叫作软件开发模型、软件生存周期模型 包括 瀑布模型 每一阶段都会生成文档 特点 缺乏灵活性在交互使用时才能发现问题&…

用HTML+CSS仿网易云音乐网站(6个页面)_实训素材

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 音乐网页设计 | 仿网易云音乐 | 各大音乐官网网页 | 明星音乐演唱会主题 | 爵士乐音乐 | 民族音乐 | 等网站的设计与制作 | HTML期末大学生网页设计作…

ubuntu 安装 k8s 记录 2 初始化

ubuntu 安装 k8s 记录 2 初始化初ubuntu 安装 k8s 记录初始化初始化前置条件查询本机 ip需要docker初始化报错禁止 Swap 分区禁用 CRI重启 containerd重置节点初始化初始化报错设置驱动向 docker 看齐如果遇到出错要重新初始化&#xff0c;先执行下面两个步骤关闭 swap 并重新设…

业务增长遇到瓶颈?这些用大数据驱动业务增长的方法你一定要看看

目录 前言 一、海量数据处理方案 1.1 大数据存储 1.1.1 传统数据存储 1.1.2 云大数据仓库 1.2 数据BI快速展示 1.2.1大数据BI产业链结构分析 1.2.2 华为一站式大数据BI方案 前言 随着大数据与云原生的快速发展融汇交互&#xff0c;各技术领域又将来临新一波迅雷之势的挑…