# aardio 范例: Cookies/inet.http



```aardio
import console;
import inet.http;
var http = inet.http(); 

//清除指定网址的 Cookies 
inet.clearCookie("httpbin.org")

/*
inet.http,web.rest,web.form 等共享会话与持久 Cookie。
在同一进程内多线程或不同的 inet.http 对象都共享会话。
inet.whttp 不会与 inet.http 等共享会话。

这些对象都是自动管理 Cookie。
inet.http 与 inet.whttp 都可以调用 disableCookies 禁用自动管理 Cookie 的功能。

web.rest.client 或继承自该对象的所有 web.rest 客户端都提供 setCookie 方法。
web.rest.client 的 setCookie 只是直接指向 inet.setCookie 函数。
*/

//写入新的 Cookie
http.get("https://httpbin.org/cookies/set/newName/newValue");

//参数指定 Cookie 对象数组，格式与与 fsys.cookies 或 CDP 返回的 Cookie 数组兼容
inet.setCookie([
	{
		domain = "httpbin.org";
    	name = "user_token";
    	value = "aardio_test_123";// 这种格式值必须是字符串
	}
]);


/*
调用参数(网址,值,名字,过期时间) 
名字或值至少要指定一个，值为空或 "delete" 删除 Cookie。
过期时间可选，传入数值时表示过期天数，指定其他非 null 值将使用 time.gmt 转换为时间。
*/
inet.setCookie( "httpbin.org","cooke_value","cooke_name"); //Cookie 值在前，名在后，不要弄反了

//仅指定一个表参数配置要添加的 Cookie  。
inet.setCookie( {
	domain = "httpbin.org",
	cookies =  {
		name1 = "value",
		name2 = 123; //这种格式值可以是任意类型，自动调用 tostring 转换为 Cookie 值
	}
})

//可以在参数 1 中指定支持 getCookies 方法的对象（这主要是指 web.view ）
//请参考 web.view 获取 Cookies: https://www.aardio.com/zh-cn/docs/examples/WebUI/web.view/DevTools/cookies.html
inet.setCookie( {
	getCookies = function(){
		return [
			{
				domain = "httpbin.org";
				name = "cdp_name";
				value = "cdp_value";
			}
		] 
	} 
})

// 发送 GET 请求，httpbin.org/cookies 接口会回显客户端发送的所有 Cookie
var result,err = http.get("https://httpbin.org/cookies");

//显示结果
console.status(result,"Cookies:",result,err)

console.pause(); 
```

