前段问过诸位 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)
}
1
misaka19000 2020-04-20 09:48:57 +08:00
资瓷
|
2
Vegetable 2020-04-20 10:02:57 +08:00
支持
|
3
Joyboo 2020-04-20 10:04:31 +08:00
X
|
4
yoshiyuki 2020-04-20 10:28:32 +08:00
前排提个小问题,multi-part 能支持吗?
|
5
xnode 2020-04-20 10:33:13 +08:00
字词
|
6
guonaihong OP @yoshiyuki 可以,请看第三个例子。
|
7
codingAlex 2020-04-20 10:37:47 +08:00
当然要资瓷一波
|
8
debuginn 2020-04-20 10:40:25 +08:00
牛逼 支持
|
9
guonaihong OP |
10
monkeyWie 2020-04-20 13:54:40 +08:00
资瓷 资瓷
|
11
guonaihong OP @monkeyWie 感谢感谢。。。
|
12
zhaoyong1990 2020-04-20 14:45:17 +08:00
支持
|
13
guonaihong OP @zhaoyong1990 感谢支持。。。
|
14
purensong 2020-04-20 16:35:37 +08:00
我不明白这么用和直接发 get post 有啥好处
|
15
guonaihong OP @purensong 直接 get post 是推荐的用法,有 curl 命令资产才推荐用 pcurl,现在明白了吧。
|
16
dbskcnc 2020-04-20 17:03:50 +08:00
不错, 这样调用网上的 rest api 方便多了,直接复制过来就能基本能用
|
17
guonaihong OP @dbskcnc 感谢支持。。。
|
18
aheadlead 2020-04-20 18:14:15 +08:00
好评 楼主怎么想到的。。。。
|
19
chenyi 2020-04-20 18:39:35 +08:00
资瓷一哈
|
20
guonaihong OP @chenyi 感谢支持。。。
|
21
guonaihong OP @aheadlead 我有个习惯,开发过程中哪个点不爽,会记录下来。这些个痛点就是灵感的来源。。。
|