import curl;
import console;
//创建 CURL 客户端
var http = curl.easy();
//POST 演示
console.showLoading("正在连接网页")
var str = http.post("http://eu.httpbin.org/post"
,"user=username&password=123456")
console.log(str)
console.pause()
也可以用表对象指定 POST 数据,示例:
import curl;
var http = curl.easy();
//POST 演示
var str = http.post("http://eu.httpbin.org/post",{
user = "user";
password = "pwd"
})
http.post(url,postData) 会自动转换为代码 http.setOpt(0x2712/*_CURLOPT_URL*/,url);http.setOpt( 0x271F/*_CURLOPT_POSTFIELDS*/,postData) 。
import curl;
var http = curl.easy();
var str = http.get("http://www.example.com")
print(str)
curl.easy 提供的 get(),post() 方法与 inet.http 的 get(),post() 方法的参数用法基本相同。
import curl;
import console;
//创建 CURL 客户端
var http = curl.easy();
//设置 CURL 选项
http.setOpt( 0x2712/*_CURLOPT_URL*/,"http://eu.httpbin.org/post" ) //设置URL
http.setOpt( 0x2A/*_CURLOPT_HEADER*/,1 );//回写HTTP头
http.setOpt( 0x271F/*_CURLOPT_POSTFIELDS*/
,"user=username&password=123456" )
//使用封装好的函数可以简化一些设置项
http.setHttpHeader( "Host: 404.aardio.com" )
http.setCookieFile( "cookies" )
http.onReceive = function(buffer,size,nmemb){
console.log( raw.tostring(buffer,1,nmemb) )
return nmemb //已接收的字节数
}
console.showLoading("正在连接测试网页......")
http.exec(); //发送请求
console.dump( http.getInfo() ) //显示信息
console.pause()
import curl;
import console;
var http = curl.easy();//创建客户端
http.setOpt(0x2712/*_CURLOPT_URL*/,"http://eu.httpbin.org/post") //设置URL
http.setOpt( 0x2A/*_CURLOPT_HEADER*/,1 );//回写HTTP头
http.setOpt( 0x271F/*_CURLOPT_POSTFIELDS*/
,"user=username&password=123456" )
http.setCookieFile("/cookies" )
http.onReceive = function(buffer,size,nmemb){
console.log( ..raw.tostring(buffer,1,nmemb) )
return nmemb;
}
//下面演示批量任务
console.showLoading("正在连接测试网页")
var manage = curl.multi();//创建批量任务管理器
manage.add( http ) //添加任务
var mrc,active
do {
do {
mrc,active = manage.exec();
sleep(100)
} while ( mrc= -1/*_CURLM_CALL_MULTI_PERFORM*/)
//if( manage.select(0) == -1/*_SOCKET_ERROR*/ ) break;
}while( mrc==0 && active)
console.pause();
import curl;
import console;
//创建一个测试文件
string.save("/test.txt","测试文件" )
var http = curl.easy();
http.setOpt( 0x2712/*_CURLOPT_URL*/ ,"http://httpbin.org/post" )
//设置上传表单
http.setPostForm(
user="test";
file="@/test.txt" //文件路径首字符为@
)
//进度事件
http.onProgress = function(buffer,downloadTotal,downloadNow,uploadTotal,uploadNow){
console.log( "下载大小:"+downloadTotal,"已下载:"+downloadNow,"上传大小:"+uploadTotal,"已上传:"+uploadNow)
}
//回显事件
http.onReceive = function(buffer,size,nmemb){
console.log( ..raw.tostring(buffer,1,nmemb) )
return nmemb;
}
console.log("正在上传文件");
http.exec();//执行请求
console.pause();
import curl;
import console;
//创建一个测试文件
string.save("/test.txt","测试文件" )
var http = curl.easy();
var str = http.post("https://httpbin.org/post",{
user="test";
file="@/test.txt" //文件路径首字符为@
})
console.log(str);
console.pause();
使用 process.curl 支持库可以调用 Windows 10 1803 及之后系统自带的 curl 命令。
将 import process.curl 改为 import process.curl.7.81 可兼容到 XP 系统( 普通软件已无此必要 )。
请参考: process.curl 示例