跳到主要内容

HTML 表单转 cURL 命令转换器

粘贴 <form> HTML,获得现成可用的 curl 命令 — 解析 action/method/enctype 和每个命名的输入,处理 multipart/form-data 与 urlencoded、复选框、选择框、Basic Auth 和自定义标头。

输入

Drop a file or browse
One file · text

粘贴整个页面或仅 <form>…</form> 标记。

以 1 开头的表单编号,或 "all" 以转换页面上的所有表单。

将相对 action("/login")解析为完整 URL。如果 action 已是绝对路径则忽略。

每行一个 name=value — 替换为该字段在 HTML 中找到的值/checked 状态。

每行一个标头,格式为 "Key: Value"。

输出

cURL 命令
 
解析的字段
名称类型已包含
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 永远不会离开您的计算机。

如何使用

  1. 将表单的 HTML 粘贴到输入框中,或将 .html 文件拖到上传器中。整个保存的页面也可以 — <form>…</form> 外的任何内容都会被忽略。
  2. 如果 action 属性是相对的(/login 而不是 https://example.com/login),填入基础 URL,以便生成的命令有一个真实的地址要点击。
  3. 检查解析的字段表以准确查看发现了什么 — 每个命名的输入、其类型、将被发送的值以及是否真正包含它。
  4. 需要不同于 HTML 中的示例数据?将 name=value 行添加到覆盖字段值中,而不是编辑标记。
  5. 添加任何额外标头Basic Auth 凭据,或切换跟随重定向,然后复制或下载命令。

字段的选择方式

这遵循浏览器在您点击提交时应用的相同规则:

  • 复选框和单选按钮仅在带有 checked 属性时才被包含 — 未选中的框永远不会被发送,与实际表单行为相匹配。
  • <select> 发送标记为 selected 的选项,或者如果没有标记则发送第一个选项 — 永远不会是空白值。
  • 禁用的字段总是被排除。
  • <button type="reset">/type="button"> 仅是 UI,从不提交,因此被删除。
  • <input type="file"> 无法从粘贴的标记中携带真实的文件字节,因此变成 -F 'name=@/path/to/file' 占位符 — 运行前编辑路径。

设置

  • 要转换的表单 — 以 1 开头的数字(123…),或 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

form parsercurl commandhttp requestapi testingmultipart form-dataurlencodedhtml parserweb scrapingdeveloper

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。