V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
guonaihong
V2EX  ›  Go 编程语言

首发,可以在 golang 解析 curl 啦。。。

  •  2
     
  •   guonaihong ·
    guonaihong · 2020-04-20 09:29:40 +08:00 · 5846 次点击
    这是一个创建于 1680 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Go codecov

    项目出发点

    前段问过诸位 v 友,go 里面有否有库可以解析 curl,经过求证 可以同时支持 FormData 和 body 的确实没有。好吧,所以有了 pcurl,正好填充 go 的一块空白领域。

    pcurl 简介

    pcurl 可以把 curl 的命令解析成*http.Request,无论是标准库粉还是 gout 粉都可以使用,这里平等对待。

    未来计划(诗和远方)

    • 可以完全解析 curl 的 http 子集

    项目地址

    https://github.com/antlabs/pcurl

    快速开始

    package main
    
    import (
        "fmt"
        "github.com/antlabs/pcurl"
        "io"
        "net/http"
        "os"
    )
    
    func main() {
        req, err := pcurl.ParseAndRequest(`curl -XPOST -d '{"hello":"world"}' 127.0.0.1:1234`)
        if err != nil {
            fmt.Printf("err:%s\n", err)
            return
        }   
    
        resp, err := http.DefaultClient.Do(req)
        if err != nil {
            fmt.Printf("err:%s\n", err)
            return
        }   
        defer resp.Body.Close()
    
        io.Copy(os.Stdout, resp.Body)
    }
    
    21 条回复    2020-04-20 19:08:45 +08:00
    misaka19000
        1
    misaka19000  
       2020-04-20 09:48:57 +08:00
    资瓷
    Vegetable
        2
    Vegetable  
       2020-04-20 10:02:57 +08:00
    支持
    Joyboo
        3
    Joyboo  
       2020-04-20 10:04:31 +08:00
    X
    yoshiyuki
        4
    yoshiyuki  
       2020-04-20 10:28:32 +08:00
    前排提个小问题,multi-part 能支持吗?
    xnode
        5
    xnode  
       2020-04-20 10:33:13 +08:00
    字词
    guonaihong
        6
    guonaihong  
    OP
       2020-04-20 10:36:33 +08:00
    @yoshiyuki 可以,请看第三个例子。
    codingAlex
        7
    codingAlex  
       2020-04-20 10:37:47 +08:00
    当然要资瓷一波
    debuginn
        8
    debuginn  
       2020-04-20 10:40:25 +08:00
    牛逼 支持
    guonaihong
        9
    guonaihong  
    OP
       2020-04-20 13:04:36 +08:00
    monkeyWie
        10
    monkeyWie  
       2020-04-20 13:54:40 +08:00
    资瓷 资瓷
    guonaihong
        11
    guonaihong  
    OP
       2020-04-20 14:26:32 +08:00
    @monkeyWie 感谢感谢。。。
    zhaoyong1990
        12
    zhaoyong1990  
       2020-04-20 14:45:17 +08:00
    支持
    guonaihong
        13
    guonaihong  
    OP
       2020-04-20 16:27:06 +08:00
    @zhaoyong1990 感谢支持。。。
    purensong
        14
    purensong  
       2020-04-20 16:35:37 +08:00
    我不明白这么用和直接发 get post 有啥好处
    guonaihong
        15
    guonaihong  
    OP
       2020-04-20 16:57:32 +08:00
    @purensong 直接 get post 是推荐的用法,有 curl 命令资产才推荐用 pcurl,现在明白了吧。
    dbskcnc
        16
    dbskcnc  
       2020-04-20 17:03:50 +08:00
    不错, 这样调用网上的 rest api 方便多了,直接复制过来就能基本能用
    guonaihong
        17
    guonaihong  
    OP
       2020-04-20 18:13:24 +08:00
    @dbskcnc 感谢支持。。。
    aheadlead
        18
    aheadlead  
       2020-04-20 18:14:15 +08:00
    好评 楼主怎么想到的。。。。
    chenyi
        19
    chenyi  
       2020-04-20 18:39:35 +08:00
    资瓷一哈
    guonaihong
        20
    guonaihong  
    OP
       2020-04-20 19:05:57 +08:00
    @chenyi 感谢支持。。。
    guonaihong
        21
    guonaihong  
    OP
       2020-04-20 19:08:45 +08:00
    @aheadlead 我有个习惯,开发过程中哪个点不爽,会记录下来。这些个痛点就是灵感的来源。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3908 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 04:16 · PVG 12:16 · LAX 20:16 · JFK 23:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.