本文目录导读:

- 浏览器开发者工具(最直接,适合GET/POST)
- Postman(功能最强,适合接口调试)
- cURL(命令行,适合脚本/自动化)
- 抓包工具(适合需要完整捕获 HTTP/HTTPS 流量)
- 浏览器控制台(Fetch/JavaScript,适合前端开发)
- 关键注意事项(避免常见坑)
- 总结选择建议
手动模拟网页网络请求发送,通常是为了调试接口、查看响应数据或测试后端逻辑,以下是几种常见且有效的工具和方法,按使用场景从简单到专业排序:
浏览器开发者工具(最直接,适合GET/POST)
适用场景:快速查看某个页面按钮点击后发送了什么请求,或手动重放请求。
- 打开方式:
F12或右键 -> “检查” -> “网络”(Network) 标签。 - 步骤(手动模拟):
- 在页面操作前,先勾选“保留日志”(Preserve log)。
- 触发请求(如点击按钮、提交表单)。
- 在网络列表中右键点击该请求。
- 选择 “复制” -> “复制为 cURL”(或者“复制为Fetch”)。
- 高级用法:复制为cURL后,可以直接粘贴到命令提示符或Postman中运行,保持所有Cookie和Header。
- 直接修改重发:在“网络”面板中右键请求 -> “编辑并重发” (Chrome/Edge),可以修改Header或Body再发送。
Postman(功能最强,适合接口调试)
适用场景:需要多次修改参数、保存请求集合、查看详细响应。
- 核心操作:
- 获取请求数据:通常从浏览器“复制为cURL”。
- 打开Postman,点击 Import -> Raw text -> 粘贴cURL命令。
- 手动构建:如果无cURL,自己填写:
- Method:GET / POST / PUT / DELETE
- URL:目标地址
- Headers:如
Content-Type: application/json、Authorization: Bearer xxxxx、Cookie - Body:选择
raw->JSON,粘贴JSON参数。
- 点击 Send。
cURL(命令行,适合脚本/自动化)
适用场景:服务器调试、无图形界面环境、集成到脚本。
- 从浏览器复制:如上文,复制为cURL后直接粘贴到终端。
- 手动构建示例:
# GET 请求(带查询参数)
curl "https://api.example.com/data?page=1&limit=10"
# POST 请求(JSON格式)
curl -X POST "https://api.example.com/login" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer token123" \
-d '{"username":"admin","password":"123456"}'
# 带Cookie的请求(从浏览器开发者工具中查看并复制Cookie值)
curl "https://example.com/user" \
-H "Cookie: sessionid=abc123; token=xyz"
常用选项:
-v:显示详细请求/响应头-L:跟随重定向-o data.txt:保存响应到文件
抓包工具(适合需要完整捕获 HTTP/HTTPS 流量)
适用场景:手机APP、非浏览器应用、需要修改请求再发送。
-
常见工具:
- Fiddler Everywhere(跨平台,推荐新手)
- Charles(macOS/Windows,专业稳定)
- Wireshark(底层网络包,较复杂)
-
手动模拟步骤(以Fiddler为例):
- 勾选 Composer 标签(或右上角 Composer)。
- 将浏览器中捕获的请求拖拽到Composer面板。
- 修改Method、URL、Header或Body。
- 点击 Execute。
浏览器控制台(Fetch/JavaScript,适合前端开发)
适用场景:不想打开其他工具,直接在网页动态环境中测试。
// 在控制台手动发起请求(支持Promise)
fetch('https://api.example.com/data', {
method: 'POST', // 或 GET, PUT, DELETE
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer token123',
// 可添加Cookie: document.cookie 自动携带
},
body: JSON.stringify({
key1: 'value1',
key2: 'value2'
})
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
- 注意:跨域请求(CORS)可能会被浏览器阻止,这时建议使用Postman或cURL。
关键注意事项(避免常见坑)
- Cookie/Session:浏览器发送的请求自动携带Cookie,但手动模拟时需要手动添加
Cookie头(通常从浏览器开发者工具->Application->Cookies 复制)。 - Referer/Origin:某些后端会校验来源域,可以从浏览器请求中复制
Referer或Origin头加入。 - Token过期:如果请求需要登录态,确保Token或Session ID是有效的。
- Content-Type:POST请求时务必匹配服务器接受的格式(如
application/json、application/x-www-form-urlencoded)。 - 编码:URL中的中文/特殊字符需进行URL编码,Postman和cURL通常自动处理,但手动拼接URL时要注意。
总结选择建议
| 你的目标场景 | 推荐工具 |
|---|---|
| 直接在页面调试接口 | 浏览器开发者工具(编辑并重发) |
| 需要保存、分类、共享的接口测试 | Postman / Insomnia |
| 命令行/自动化脚本 | cURL |
| APP或非浏览器流量 | Fiddler / Charles |
| 在前端环境中快速验证 | 控制台 Fetch |
如果你想针对某个具体场景(比如抓一个提交表单的请求并修改参数再发),可以告诉我,我可以给你更精准的步骤。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。