🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
最近在工作中对 http 的请求参数解析有了进一步的认识,写个小短文记录一下。
回顾下自己的情况,大概就是:有点点网络及编程基础,只需要加深一点点对 HTTP 协议的理解就能弄明白了。
先分享一个小故事:我至今仍清晰地记得大三实习时的第一个工作任务,我需要调用其他部门提供的 api 去完成某项业务。
那个 api 文档只告诉了我请求参数需要传什么,没有提及用什么方式传,比如这样:
其实如果有经验的话,直接在请求体或 url 里填参数试一下就知道了;另一个是新人有时候不太敢问问题,其实只要向同事确认一下就好的。
然而由于当时我掌握的编程知识有限,只会用表单提交数据。所以当我下载完同事安利的 api 调用调试工具 postman 后,我就在网上查怎么用 postman 发送表单数据,结果折腾了好久 api 还是没能调通。
当天晚上我向老同学求助,他问我上课是不是又睡过去了?
我说你怎么知道?
他说当然咯,你上课睡觉不学习又不是一天两天的事情…
后来他告诉我得好好学一下 http 协议,看看可以在协议的哪些位置放请求参数。
一个简单的 http 服务器还原
那么,在正式讲解之前,我们先简单搭建一个 http 服务器,阿菌沿用经典的 python 版云你好服务器进行讲解。
云你好服务器的代码很简单,服务器首先会获取 name 用户名这个参数,如果用户传了这个参数,就返回 Hello xxx
,xxx 指的是 name 用户名;如果用户没有传这个参数则返回 Hello World
:
# 云你好服务源码
from flask import Flask
from flask import request
app = Flask(__name__)
# 云你好服务 API 接口
@app.get("/api/hello")
def hello():
# 看用户是否传递了参数 name
name = request.args.get("name", "")
# 如果传了参数就向目标对象打招呼,输出 Hello XXX,否则输出 Hello Wo