# cURL 转 Go (net/http)

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

> 标准页面: https://elysiatools.com/zh/tools/curl-to-go

- **分类:** Development

- **关键词:** curl, 转换, go, golang, net/http, http, api, 代码生成

## 概述

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

## 输入项

- **cURL 命令** (textarea): curl -X POST https://api.example.com/users \ -H "Content-Type: application/json" \ -d '{"name":"Alice"}'
- **格式化请求体** (checkbox)
- **包含注释** (checkbox)

## 适用场景

- 在使用 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 调用。

## 常见问题

### 这个工具支持哪些 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 密钥。

## 相关工具

- [cURL 转 JavaScript (axios)](https://elysiatools.com/zh/tools/curl-to-js-axios): 将 cURL 命令转换为 JavaScript axios 代码片段，使用配置对象、请求头和数据
- [cURL 转 JavaScript (fetch)](https://elysiatools.com/zh/tools/curl-to-js-fetch): 将 cURL 命令转换为 JavaScript fetch() 代码片段，包含请求头、请求体和方法
- [cURL 转 PHP (cURL)](https://elysiatools.com/zh/tools/curl-to-php): 将 cURL 命令转换为 PHP cURL 代码片段，包含 curl_setopt、请求头和 POST 字段
- [cURL 转 Python (requests)](https://elysiatools.com/zh/tools/curl-to-python): 将 cURL 命令转换为 Python requests 代码片段，包含请求头、数据和请求方法
- [API 契约压力测试器](https://elysiatools.com/zh/tools/api-contract-stress-tester): 根据 OpenAPI 3.x 规范批量生成边界值测试请求，并可选发送到真实后端以发现契约不一致。
- [Cron 表达式解释器](https://elysiatools.com/zh/tools/cron-expression-explainer): 解析 5 段 / 6 段 / Quartz cron 表达式为自然语言调度描述，按字段拆解，并按任意 IANA 时区列出接下来 N 次执行时间，附带 AI 生成的本地化自然语言解释
- [Tailwind 色板同步器](https://elysiatools.com/zh/tools/tailwind-color-palette-sync): 输入一组 HEX,选择命名规则(色阶 50–950 / 单名 / 对象嵌套),自动生成 tailwind.config.ts 的 theme.extend.colors 片段,每个色阶同时给出 WCAG AA/AAA 对比等级,可选暗色模式。
- [cURL 命令转 HAR 转换器](https://elysiatools.com/zh/tools/curl-to-har-converter): 将 cURL 命令转换为可移植的 HAR 1.2 请求条目。

## 示例

- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
- [Android Kotlin 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-kotlin): Android Kotlin 图像处理示例，包括图像读取保存、缩放和格式转换
- [Web Rust 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-rust): Web Rust 图像处理示例，包括图像读取保存、缩放和格式转换

## 相关内容

- [cURL 请求转换与 HTTP 测试工作流](https://elysiatools.com/zh/hubs/curl-to-code-converter): 将 cURL 请求转换为代码片段或 HAR，安全测试请求，并结合响应上下文解释 HTTP 状态码，同时保留请求头、请求体和认证注意事项。
