问卷调查:如果实现解析 curl 命令的库,大家感兴趣吗?

2020-03-15 09:37:03 +08:00
 guonaihong

问卷调查

github 没有解析 curl 命令的库,再加上目前的知识储备实现这个库问题不大(熟悉 curl 命令选项 && go 的 http 客户端 && gnu 命令风格)。想知道如果对这个库感兴趣的童鞋多的话,4 月 1 号就开撸第一个版本。

伪代码

req, err := pcurl.ParseAndRequest(`curl -X POST -d '{"hello":"val")'`)
resp, err := http.DefaultClient.Do(req)

项目后面存放位置(现在还没开始)

https://github.com/antlabs/pcurl

4873 次点击
所在节点    Go 编程语言
48 条回复
lasuar
2020-03-15 10:16:11 +08:00
搜罗一下,没找到做这个事的 pkg,做吧,有市场!
hxse
2020-03-15 10:23:15 +08:00
如果能支持多线程, 多任务下载, 像 aria2 那样, 很感兴趣
tairan2006
2020-03-15 10:30:55 +08:00
好像…没什么用啊,httpie 不是更友好么
ClericPy
2020-03-15 10:51:01 +08:00
用 py 搞过 chrome 导出的 curl 转 requests args dict, 算是比较有用的吧, 关键信息转 JSON, 标准化+持久化, 平时抓包拿个 curl 一句不改就在代码里存了请求 meta, 还是挺好用的, golang 这边没找到类似的
ospider
2020-03-15 10:52:28 +08:00
guonaihong
2020-03-15 10:56:42 +08:00
@ospider 谢谢,刚刚看过了。https://mholt.github.io/curl-to-go/ 解析 curl multipart 格式有问题。
可以用下面的命令 curl -F text=good -F voice=good.pcm www.qq.com 试下就知道。
scukmh
2020-03-15 11:02:11 +08:00
为什么不做转换代码的工作呢,感觉这样写起来并没有什么用处呀。
guonaihong
2020-03-15 11:06:15 +08:00
@scukmh 是指看到 curl 命令之后,直接用代码撸类似请求?
wolfie
2020-03-15 11:10:49 +08:00
chrome 的 curl 复制出来可以导入到 postman ( postman 导出无法导入回去)
52coder
2020-03-15 11:16:02 +08:00
比起这个我对如何使用 libcurl c/c++那个库实现多任务处理更感兴趣,哈哈哈,搜了好久没收到相关的例子,比如主线程往一个队列里插入任务,子线程比如最大并发 10 个任务同时处理,处理完一个再从任务里添加一个,我现在实现的比较挫,只能 10 个全部处理完再加 10 个,select 那啥的玩的不 6
ETiV
2020-03-15 11:17:10 +08:00
#7 的想法可能有点用处,大概的场景:
从 chrome network 里复制出 curl 的命令,贴进 terminal 里。把 curl 命令改为 curl2go,回车后转换出 golang 的使用其自带标准库的代码,使用时无第三方依赖

而且感觉实现起来也简单些,直接用 flag 解析传进来的参数就好了
augustheart
2020-03-15 11:23:02 +08:00
解析 curl 命令的库……我想了一下,这不是应该直接从 curl 的源码里面把代码抠出来就行么?
再想了一下,哦,你们不是写 c/c++的……
augustheart
2020-03-15 11:23:33 +08:00
再看了一下最上面,哦,原来是 go 栏目,我走错门了……
guonaihong
2020-03-15 11:32:14 +08:00
@ETiV 没懂 '把 curl 命令改为 curl2go' 这句是怎么实施的。
23571113
2020-03-15 11:43:09 +08:00
@guonaihong 用 go 做 libcurl 的 wrapper
watzds
2020-03-15 11:46:04 +08:00
一般都有动态参数,用这个怎么搞?
直接生成对应语言的代码倒还行
guonaihong
2020-03-15 11:47:05 +08:00
@23571113 libcurl 包装会丢掉 go 强大的交叉编译能力,go 的代码很容易跑在 mac, linux, windows, freebsd 上。
引入 gcc/g++就头疼了。
guonaihong
2020-03-15 11:49:16 +08:00
一般都有动态参数,如何理解?
guonaihong
2020-03-15 11:49:48 +08:00
@watzds 一般都有动态参数,如何理解?
23571113
2020-03-15 11:58:28 +08:00
@guonaihong 你可以先做 wrapper 再慢慢把底层替换, 先把功能实现, 要不容易弃坑.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/652904

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX