前段问过诸位 v 友,go 里面有否有库可以解析 curl,经过求证 可以同时支持 FormData 和 body 的确实没有。好吧,所以有了 pcurl,正好填充 go 的一块空白领域。
pcurl 可以把 curl 的命令解析成*http.Request,无论是标准库粉还是 gout 粉都可以使用,这里平等对待。
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)
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.