# aardio 范例: 创建 cURL 进程

```aardio
//创建 curl 进程
import console;  
/*
在 aardio 中更推荐使用 web.rest 或者 inet.http ，这些基于系统自带组件体积更小，接口也更简洁。
web.rest 入门指南: https://www.aardio.com/zh-cn/doc/library-guide/std/web/rest/client.html
inet.http 入门指南: https://www.aardio.com/zh-cn/doc/library-guide/std/inet/http.html
*/

//默认调用 Win10 1803 及之后系统自带的 curl 。
//改为 import process.curl.7.81 可兼容到 XP 系统。
import process.curl;

/*
下面创建进程管道，返回 process.popen 对象。
静默模式不显示 curl 自带的控制台窗口，不显示 curl 操作进度。
*/
var prcs = process.curl.popen("http://httpbin.org/anything/test");

//等待 curl 进程退出，返回进程输出，进程错误输出，进程退出代码
var out,err,exitCode = prcs.readAll();
console.log(out);

// 在命令行内向 AI 接口发送 POST 请求
var prcs = process.curl.popen({ 
	"http://ai.aardio.com",
	"-N", //禁用缓冲
	"-d" = { //POST 参数
		q = "aardio 中 process.curl,processs.curl.open,processs.curl.popen 的区别"; //-d 的字段值会自动 URL 编码为字符串
	}
})

//循环输出服务器输出的文本
for( all,out,err in prcs.each() ){
    console.write( out,err );
} 

/*
//直接获取 CURL 输出的文本
var content = process.curl({ 
	"http://ai.aardio.com",
	"-d" = {
		q = "aardio 从一循环到十怎么写？"; 
	}
})
*/

//如果打开控制台，curl.exe 会自动附加到当前控制台 。
console.open();

//创建进程对象，显示 CURL 控制台窗口与操作进度
var prcs = process.curl.open("-o test.json http://httpbin.org/anything/test");

//等待 curl 进程退出
prcs.waitOne();

console.pause(true);


```