从 cURL 命令到 HttpAgent:一行导入请求

Chrome DevTools 复制出来的 cURL 命令,可以直接粘贴给 HttpAgent 发起请求。本文介绍 cURL 解析能力与扩展自定义选项的方法。
HttpAgent 团队2026 年 6 月 25 日1 分钟读完

排查线上问题时,我们经常从浏览器开发者工具复制 cURL 命令到终端重放。HttpAgent 更进一步:直接解析 cURL 命令字符串并发送请求,覆盖常见选项,还支持扩展自定义参数。

常规用法#

cs
var curl = "curl -X POST https://api.example.com/user -H \"Content-Type: application/json\" -d '{\"name\":\"Furion\"}'";var result = await httpRemoteService.SendAsStringAsync(HttpRequestBuilder.FromCurl(curl));

一行代码完成「解析 → 构建请求 → 发送 → 获取响应」。

支持的常见选项#

  • -X / 请求方法(GET、POST、PUT、DELETE……)
  • -H / 请求头(可多次出现)
  • -d / 请求体(JSON、表单、原始字符串)
  • -u / Basic 身份认证
  • -b / Cookie
  • -F / 多部分表单(含文件上传)
  • --connect-timeout / 连接超时
  • -e / Referer 来源地址
  • -A / User-Agent

多部分表单示例:

cs
var curl = "curl -F \"file=@C:\\avatar.png\" -F \"name=Furion\" https://api.example.com/upload";await httpRemoteService.SendAsync(HttpRequestBuilder.FromCurl(curl));

扩展自定义选项#

内置解析器无法覆盖的私有参数,可以通过实现 IHttpCurlExtractor 自定义提取器扩展:

cs
public class MyCurlExtractor : HttpCurlExtractorBase{    public override void Extract(HttpCurlParsingContext context)    {        // 从 context.Command 中解析自定义参数并写入 context.Builder    }}builder.Services.AddHttpRemote()    .AddHttpCurlExtractor<MyCurlExtractor>();

完整语法与全部内置选项说明,请参阅 从 cURL 命令发送 文档。

相关文章

五分钟接入 Access Token 自动管理对接需要 Access Token 的第三方 API 时,手动管理令牌的获取、缓存与刷新既繁琐又容易出错。本文演示 HttpAgent 的 Access Token 自动管理,五分钟完成接入。2026 年 8 月 1 日 · HttpAgent 团队 · 约 2 分钟读完
压测实战:HttpAgent StressTestHarness 使用指南上线前的性能验证不可或缺。本文演示 HttpAgent 内置压力测试工具 HttpStressTestHarnessBuilder 的完整用法:并发、请求数与测试报告。2026 年 7 月 10 日 · HttpAgent 团队 · 约 1 分钟读完