V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
0o0O0o0O0o
V2EX  ›  分享创造

浏览器里“运行”curl

  •  
  •   0o0O0o0O0o · 2022-02-01 15:54:23 +08:00 · 4464 次点击
    这是一个创建于 1028 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本意是想做个像 curlconverter 的东西,即可以依照 curl 命令生成不同语言 /库的代码。不过没有找到过好用的,支持的选项很少,也不方便扩展。

    我觉得主要还是因为 curl 的 options 太多太复杂,自己实现着实很累啊,我想,为什么不直接用 curl 来改呢?但由于我希望这类工具是作为一个网页或者 vscode 插件的形式,于是我想到了 wasm 。

    于是大年三十找了找 wasm 资料,让 curl 在浏览器中跑了起来,当然,把请求部分删掉了,只保留了命令行解析的功能。

    实现了一个粗糙的版本,还有很多待完善的,欢迎 pr 。

    https://imgur.com/I2DpVlq

    链接

    Y3VybC5wcml2YWN5aGlkZS5jb20=
    16 条回复    2022-02-06 18:01:41 +08:00
    7gugu
        1
    7gugu  
       2022-02-01 16:35:41 +08:00 via iPhone
    cooooool
    loading
        2
    loading  
       2022-02-01 16:40:11 +08:00
    有点意思
    loveqianool
        3
    loveqianool  
       2022-02-01 17:02:02 +08:00
    链接怎么打不开呀
    0o0O0o0O0o
        4
    0o0O0o0O0o  
    OP
       2022-02-01 17:07:13 +08:00 via iPhone
    @loveqianool 要 base64 decode 一下
    renmu123
        5
    renmu123  
       2022-02-01 17:16:02 +08:00 via Android
    可以提交 pr 到 postwoman
    billzhuang
        6
    billzhuang  
       2022-02-01 17:45:18 +08:00 via iPhone
    Postwoman 和 Hoppscotch 是一个么?
    skydiver
        7
    skydiver  
       2022-02-01 17:46:20 +08:00
    可以 import 到 postman ,然后再 copy 成别的命令
    renmu123
        8
    renmu123  
       2022-02-01 18:07:08 +08:00 via Android   ❤️ 1
    @billzhuang 一个,改名之后太难记了
    0o0O0o0O0o
        9
    0o0O0o0O0o  
    OP
       2022-02-01 18:10:37 +08:00
    @renmu123 #8 是真的难记,我每次用依然是 postwoman.io 然后等跳转
    ilylx2008
        10
    ilylx2008  
       2022-02-01 19:30:46 +08:00
    postman 可以生成不同语言的代码
    0o0O0o0O0o
        11
    0o0O0o0O0o  
    OP
       2022-02-01 19:46:24 +08:00 via iPhone
    @skydiver #7
    @ilylx2008 #10

    没有用过 postman ,不过用过一些同类工具,基本都有这个毛病

    > 支持的选项很少,也不方便扩展

    我主要是想针对复杂一点的命令,例如--http2 --resolve 这类选项
    3dwelcome
        12
    3dwelcome  
       2022-02-01 21:02:45 +08:00
    问题是 curl 没实际运行啊,就分析了个命令行参数。
    0o0O0o0O0o
        13
    0o0O0o0O0o  
    OP
       2022-02-01 21:10:54 +08:00 via iPhone
    @3dwelcome 因为我只需要这些,所以修改了 curl/src/tool_*.c ,解析完就 return 了,后续部分对于 curl.wasm 来说其实也是可以执行的,只是会执行失败。GitHub 上也能搜到一些资料,WASI issue#107 ,意思大概是目前 wasm 规范还不足以支持。
    0o0O0o0O0o
        14
    0o0O0o0O0o  
    OP
       2022-02-01 21:26:20 +08:00 via iPhone
    @0o0O0o0O0o #13 如果你是指 curl 的 main ,控制台 callMain 就可以了
    zqx
        15
    zqx  
       2022-02-02 09:26:26 +08:00 via Android
    f12 network 右键点击请求有个 copy 选项,可以把网页请求导出为 curl 格式
    kunkunzhang
        16
    kunkunzhang  
       2022-02-06 18:01:41 +08:00
    wasm 真的好玩!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5696 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 09:00 · PVG 17:00 · LAX 01:00 · JFK 04:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.