你在调试一个登录接口,或者想自动提交表单、上传文件、调用后端API——这时候绕不开的就是 POST 请求。它不像 GET 那样把参数塞在 URL 里,而是把数据“装进信封”发给服务器。那这个“信封”怎么写?下面几种常见方式,照着抄就能跑通。
Python 脚本:requests 最省心
装好 requests 库(pip install requests),三行代码搞定:
import requests
data = {"username": "admin", "password": "123456"}
res = requests.post("https://api.example.com/login", data=data)
print(res.status_code, res.json())如果要传 JSON 数据(比如 RESTful 接口常用),记得加 json= 参数,requests 会自动设好 Content-Type:
import requests
payload = {"name": "张三", "age": 28}
res = requests.post("https://api.example.com/users", json=payload)命令行:curl 一条命令就发
开发时临时测试,不用写脚本,直接敲 curl:
curl -X POST https://api.example.com/login \
-d "username=admin&password=123456"传 JSON 的话加 -H 指定头,用 -d 塞原始字符串:
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name":"李四","email":"li@domain.com"}'前端 JavaScript:fetch 现代写法
网页里想提交表单或调用接口,fetch 是首选:
fetch("/api/submit", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ title: "新笔记", content: "今天学了POST" })
).then(r => r.json()).then(console.log);如果是上传文件,用 FormData 更方便:
const form = new FormData();
form.append("file", document.getElementById("upload").files[0]);
form.append("desc", "截图说明");
fetch("/api/upload", { method: "POST", body: form });小提醒:别踩这些坑
• 提交表单时用 data=(默认 x-www-form-urlencoded),传结构化数据优先用 json=;
• curl 发 JSON 必须手动加 -H "Content-Type: application/json",否则后端可能收不到;
• JS fetch 发 JSON 一定要 JSON.stringify(),且 header 写对;
• 后端返回 400 或 500,先检查字段名拼错没、必填项漏没、token 有没有带。
写 POST 脚本不玄乎,关键就是三点:URL 对、方法设成 POST、数据放对位置。多试两次,比看十篇教程都管用。