cURL 转 Go (net/http)

将 cURL 命令转换为 Go net/http 代码片段,包含 http.NewRequest、请求头和请求体

关键信息

分类
开发与 Web
输入类型
textarea, checkbox
输出类型
text
样本覆盖
4
支持 API
Yes

概览

本工具可以将 cURL 命令行指令快速转换为原生的 Go 语言 net/http 代码片段。它支持解析请求方法、请求头、请求体以及 URL 参数,并自动生成包含 http.NewRequest、客户端初始化和响应读取的完整 Go 代码,帮助开发者快速在 Go 项目中复现 API 请求。

适用场景

  • 在使用 Go 语言开发后端服务,需要将现有的 cURL 接口测试命令集成到代码中时。
  • 调试第三方 API 时,需要快速将 Postman 或浏览器控制台导出的 cURL 转换为 Go 的 net/http 实现。
  • 编写 Go 语言的爬虫或 API 客户端,需要快速构建带有复杂请求头和 JSON 请求体的 HTTP 请求时。

工作原理

  • 在输入框中粘贴您需要转换的 cURL 命令行指令。
  • 根据需要勾选“格式化请求体”以美化 JSON 数据,或勾选“包含注释”以生成带有说明的代码。
  • 工具将即时解析 cURL 参数,并自动生成对应的 Go net/http 请求发送与响应读取代码。

使用场景

API 客户端开发:将现成的 API 文档 cURL 示例直接转换为 Go 语言的 SDK 请求代码。
接口测试迁移:将测试人员在命令行中使用的 cURL 调试命令快速转化为 Go 自动化测试脚本。
前端请求转 Go 后端:将浏览器开发者工具中复制的网络请求(Copy as cURL)转换为 Go 后端服务间的 HTTP 调用。

用户案例

1. 转换带 JSON 载荷的 POST 请求

后端开发工程师
背景原因
需要在 Go 服务中调用一个第三方的用户注册接口,该接口接收 JSON 格式的请求体。
解决问题
手动编写 Go 的 http.NewRequest 并设置 JSON 字符串和 Header 比较繁琐且容易出错。
如何使用
将包含 -X POST、-H "Content-Type: application/json" 和 -d 参数的 cURL 命令粘贴到输入框中,保持“格式化请求体”勾选。
示例配置
curl -X POST https://api.example.com/v1/users -H "Content-Type: application/json" -d '{"username":"testuser","email":"[email protected]"}'
效果
获得一段完整的 Go 代码,其中包含 strings.NewReader 承载的 JSON 字符串,以及正确设置的 Content-Type 请求头和 http.DefaultClient.Do 调用。

2. 转换带 Bearer Token 认证的 GET 请求

安全测试人员
背景原因
需要在 Go 编写的自动化脚本中调用一个受保护的 API,该 API 需要在 Header 中携带 Authorization Token。
解决问题
需要快速生成带有 Authorization 头的 Go HTTP 请求代码。
如何使用
输入带有 -H "Authorization: Bearer my_secret_token_123" 的 cURL GET 请求命令,然后复制生成的 Go 代码。
示例配置
curl -H "Authorization: Bearer my_secret_token_123" https://api.example.com/v1/me
效果
生成的 Go 代码中自动包含 req.Header.Set("Authorization", "Bearer my_secret_token_123"),可直接用于 Go 项目中进行身份验证请求。

用 Samples 测试

development

相关专题

常见问题

这个工具支持哪些 Go 语言的 HTTP 客户端?

本工具专门生成 Go 语言标准库 net/http 的代码,无需引入任何第三方依赖。

转换后的代码包含错误处理吗?

包含。生成的 Go 代码会包含对 http.NewRequest、client.Do 以及读取响应体时的标准错误处理逻辑。

如何处理带有 JSON 请求体的 POST 请求?

工具会自动解析 cURL 中的 -d 或 --data 参数,将其转换为 Go 中的 strings.NewReader,并设置相应的 Content-Type 请求头。

支持转换带有自定义 Header 的请求吗?

支持。cURL 中的所有 -H 或 --header 参数都会被转换为 Go 代码中的 req.Header.Set 调用。

转换过程是在服务器端进行的吗?

不是。转换完全在您的浏览器本地完成,不会向服务器发送您的 cURL 命令或敏感的 API 密钥。

API 文档

请求端点

POST /zh/api/tools/curl-to-go

请求参数

参数名 类型 必填 描述
curlCommand textarea -
prettyBody checkbox -
includeComments checkbox -

响应格式

{
  "result": "Processed text content",
  "error": "Error message (optional)",
  "message": "Notification message (optional)",
  "metadata": {
    "key": "value"
  }
}
文本: 文本

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-curl-to-go": {
      "name": "curl-to-go",
      "description": "将 cURL 命令转换为 Go net/http 代码片段,包含 http.NewRequest、请求头和请求体",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=curl-to-go",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

如果遇见问题,请联系我们:[email protected]