HTML 表单转 cURL 命令转换器
粘贴 <form> HTML,获得现成可用的 curl 命令 — 解析 action/method/enctype 和每个命名的输入,处理 multipart/form-data 与 urlencoded、复选框、选择框、Basic Auth 和自定义标头。
输入
粘贴整个页面或仅 <form>…</form> 标记。
以 1 开头的表单编号,或 "all" 以转换页面上的所有表单。
将相对 action("/login")解析为完整 URL。如果 action 已是绝对路径则忽略。
每行一个 name=value — 替换为该字段在 HTML 中找到的值/checked 状态。
每行一个标头,格式为 "Key: Value"。
输出
| 名称 | 类型 | 值 | 已包含 |
|---|---|---|---|
| No data yet | |||
使用此工具的更多方式
REST API
curl -X POST https://api.iotools.cloud/v1/tool/html-form-to-curl-converter \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"html": "<form action=\"/login\" method=\"post\">\n <input na…",
"form": "1",
"baseUrl": "https://example.com",
"overrides": "",
"headers": "",
"basicAuthUser": "",
"basicAuthPass": "",
"followRedirects": "true"
}'替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。
让 AI 代理执行
Use the IOTools `html-form-to-curl-converter` tool (HTML Form to cURL Command Converter) on this input:
YOUR_INPUT_HERE将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/html-form-to-curl-converter/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="HTML 表单转 cURL 命令转换器 — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
| 每次 API/MCP 调用费用 | 5 积分起 |
|---|---|
| 需要更多积分? | 查看定价 |
也可通过
使用指南
在页面源代码中找到登录或搜索表单,需要从终端、脚本或错误报告中点击同一端点?将 <form> 标记粘贴到这里,您会得到一个 curl 命令,它的提交方式与浏览器相同 — 相同的 URL、相同的方法、相同的字段名、相同的编码。一切都在您的浏览器中运行;HTML 永远不会离开您的计算机。
如何使用
- 将表单的 HTML 粘贴到输入框中,或将
.html文件拖到上传器中。整个保存的页面也可以 —<form>…</form>外的任何内容都会被忽略。 - 如果 action 属性是相对的(
/login而不是https://example.com/login),填入基础 URL,以便生成的命令有一个真实的地址要点击。 - 检查解析的字段表以准确查看发现了什么 — 每个命名的输入、其类型、将被发送的值以及是否真正包含它。
- 需要不同于 HTML 中的示例数据?将
name=value行添加到覆盖字段值中,而不是编辑标记。 - 添加任何额外标头、Basic Auth 凭据,或切换跟随重定向,然后复制或下载命令。
字段的选择方式
这遵循浏览器在您点击提交时应用的相同规则:
- 复选框和单选按钮仅在带有
checked属性时才被包含 — 未选中的框永远不会被发送,与实际表单行为相匹配。 <select>发送标记为selected的选项,或者如果没有标记则发送第一个选项 — 永远不会是空白值。- 禁用的字段总是被排除。
<button type="reset">/type="button">仅是 UI,从不提交,因此被删除。<input type="file">无法从粘贴的标记中携带真实的文件字节,因此变成-F 'name=@/path/to/file'占位符 — 运行前编辑路径。
设置
- 要转换的表单 — 以 1 开头的数字(
1、2、3…),或all以为页面上的每个表单发出一个curl命令。 - 基础 URL — 将相对
action解析为绝对 URL。action 已经是绝对的后忽略。 - 覆盖字段值 — 每行
name=value,在解析后应用。有助于交换真实密码或新的 CSRF 令牌而无需接触 HTML。
为什么 GET 产生带查询字符串的 URL 而不是 -d?
因为这就是实际发生的情况:method="get" 表单永远不会发送主体 — 浏览器在导航前将每个字段作为查询字符串附加到 URL。用 -d 重现这个会点击服务器上与真实表单提交不同的代码路径。
urlencoded 和 multipart 输出之间的区别是什么?
普通表单(或没有 enctype 的表单)提交 application/x-www-form-urlencoded 数据,因此每个字段都变成 --data-urlencode 'name=value' 标志。添加 enctype="multipart/form-data"(文件上传必需)— 将每个字段切换到 -F 'name=value' 代替,curl 作为 multipart 主体发送。
它可以从 URL 获取表单吗?
不可以,这是故意的:没有上传或获取任何东西,因此该工具在内部页面、已登录仪表板和本地主机上的工作效果与公共网站一样好。使用您浏览器的"查看源代码"或 DevTools → 复制元素,然后粘贴。
相关工具
从头开始构建 curl 命令而不是粘贴现有标记?cURL Command Builder 涵盖具有相同标志的手动 URL/header/body 输入。要从粘贴的 HTML 中提取表格数据而不是表单,请参阅 HTML Table Extractor。