HTTP 请求构建
可视化拼装 HTTP 请求:填写方法、URL、查询参数、请求头、JSON / 表单 / 文本请求体与 Bearer / Basic 认证,实时得到最终 URL、完整请求头清单和 curl、fetch、Python requests、HTTP 原始报文四种可粘贴代码,并提示头注入、GET 带 body、明文 http 传凭证等常见问题。只生成代码,不发请求。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
请求参数
所有内容都在本地拼装:不发起任何请求,也不访问目标服务端;生成结果只是代码片段,需要你自己执行。
生成结果
https://api.example.com/v1/users?page=1· 请求里包含 Authorization / Cookie,粘贴到脚本或日志前请先脱敏。
application/jsonabc123Bearer test-token{"name":"Ada"}curl -X POST 'https://api.example.com/v1/users?page=1' \
-H 'Content-Type: application/json' \
-H 'X-Request-Id: abc123' \
-H 'Authorization: Bearer test-token' \
--data-raw '{"name":"Ada"}'这个工具能做什么
- 写接口文档或复现 bug 时手拼 curl 容易漏掉 Content-Type 或转义错引号,用它把请求可视化拼好再一键复制。
- 把一次成功的请求换到另一个技术栈:同一份参数分别导出 curl、fetch、Python requests 与原始 HTTP 报文,省掉手写对照。
- 排查「服务端收到的请求和我想的不一样」:看最终 URL 的查询串编码、最终请求头清单与最终 body,确认是不是自动补的 Content-Type 覆盖了自己的设置。
- 安全自查:请求头里不小心粘进了换行会被直接拦下(头注入),明文 http 上带 Authorization 也会给出警告。
示例
输入
方法 POST;URL https://api.example.com/v1/users;查询参数 page=1;请求头 X-Request-Id: abc123;请求体 JSON {"name":"Ada"};认证 Bearer test-token输出
curl -X POST 'https://api.example.com/v1/users?page=1' \
-H 'Content-Type: application/json' \
-H 'X-Request-Id: abc123' \
-H 'Authorization: Bearer test-token' \
--data-raw '{"name":"Ada"}'Content-Type 会按请求体类型自动补在最前面;同一份请求切到 Python 会输出 requests.post(..., params=[("page", "1")], headers={...}, data=...) 的写法。
常见问题
这个工具会替我发请求吗?
不会。它只把参数拼成请求与代码片段,既不发请求也不访问目标服务端,所以你不需要担心被它探测或留下访问记录。要真的发出去,请把 curl 命令复制到终端执行,或把 fetch 片段粘进浏览器控制台。
请求头里为什么不能有换行?
HTTP 头字段以 CRLF 分隔,如果头值里能塞进 CRLF,就能凭空插入一个新头甚至一整段响应,这叫头注入(HTTP request/response splitting)。所以工具在生成前就会检查并报错,同时校验头名是否符合 RFC 9110 的 token 语法。
查询参数会怎么编码?
按 RFC 3986 做百分号编码:先按 UTF-8 取字节,再对非安全字符转义,空格会变成 %20 而不是 +(`+` 只在表单编码里有特殊含义)。URL 里原本就带的查询串会保留在最前面,你填写的参数追加在后面。
JSON 请求体会被格式化吗?
不会,工具按你输入的内容原样输出,只校验它是不是合法 JSON(不合法会给出提示但仍然输出)。这样你可以放心粘贴带模板变量的片段。切换类型到「表单」时,每行 `name=value`(或 `name: value`)会被序列化成 `application/x-www-form-urlencoded` 文本。
Basic 认证的头部是怎么算的?
按 RFC 7617 把 `用户名:密码` 按 UTF-8 编码后做标准 base64(带 `=` 填充),拼成 `Authorization: Basic <base64>`。注意 base64 不是加密,任何拿到请求的人都能还原出用户名和密码,所以务必走 https。
关键词:http request buildercurl generatorfetch snippetpython requestsraw http messageheader injectionHTTP 请求构建curl 生成请求头查询参数Bearer 认证原始报文