//调用 curl 命令 import console; /* 在 aardio 中更推荐使用 web.rest 或者 inet.http ,这些基于系统自带组件体积更小,接口也更简洁。 web.rest 入门指南: doc://library-guide/std/web/rest/client.html inet.http 入门指南: doc://library-guide/std/inet/http.html */ /* process.curl 默认调用 Windows 10 1803 及之后系统自带的 curl 。 改为 import process.curl.7.81 可兼容到 XP 系统(如无特殊原因,普通程序不必要这么做)。 */ import process.curl; /* curl 文档: https://curl.se/docs/manual.html https://curl.se/docs/manpage.html https://quickref.me/zh-CN/docs/curl.html */ //下载网页,成功返回网页,失败返回 null, 错误代码, //CURL 错误代码: https://everything.curl.dev/usingcurl/returns var data = process.curl("https://www.aardio.com") console.log( data ); //支持所有 curl 参数 var data = process.curl(`-X POST -d "{\"username\": \"jacen\", \"password\": \"123456\"}" -H "Content-Type: application/json" http://httpbin.org/anything/test `); //返回 JSON 对象或数组时,会自动解析为 aardio 对象或数组 console.dumpJson(data) /* 如果使用逗号分隔为多个参数, 那么 aardio 会自动合并所有参数并自动处理命令行转义。 合并多个参数会自动以空格分隔。 */ var data = process.curl("-X","POST", "-d",'{"username": "jacen", "password": "123456"}', "-H","Content-Type: application/json", "http://httpbin.org/anything/test", ) console.dumpJson(data) /* 也可以用一个数组或表指定任意个数参数,支持命名参数。 注意数组参数总是会被移到命名参数后面。 所有基于 process 或 process.popen 的对象都支持上述这几种命令行参数写法 */ var data = process.curl({ "-X"="POST", "-d"='{"username": "jacen", "password": "123456"}', "-H"="Content-Type: application/json", "http://httpbin.org/anything/test" }) console.dumpJson(data) //--json 如果直接指定表对象,aardio 会自动转换为 json 文本。 var data = process.curl({ "--json" = { username = "jacen"; password = "123456"; } "http://httpbin.org/anything/test" }) console.dumpJson(data) //-d 如果直接指定表对象,aardio 会自动转换为字符串,并自动处理 URL 编码。 var data = process.curl({ "-d" = { username = "jacen"; password = "123456"; } "http://httpbin.org/anything/test" }) console.dumpJson(data) console.pause(true);