aardio 文档
aardio 范例: 获取 Cookies / CDP 协议
请参考 inet.setCookie
//异步取 Cookies
import win.ui;
/*DSG{{*/
var winform = win.form(text="获取 Cookies / CDP 协议";right=759;bottom=469;bgcolor=0xFFFFFF)
winform.add()
/*}}*/
import web.view;
var wb = web.view(winform);
winform.show();
//打开页面
wb.go("https://httpbin.org/cookies/set/newName/newValue");
//获取 Cookies 需要等待页面打开
wb.waitEle("body"); //等待 CSS 选择器指定的节点
//参数 @3 指定异步回调函数以获取结果。
wb.cdp("Network.getCookies",
{urls={"https://httpbin.org"}},//参数可省略
function(result){
//指定回调函数后 CDP 调用会立即返回,不会阻塞等待 CDP 调用结果
import console;
console.dumpJson(result.cookies);
//https://chromedevtools.github.io/devtools-protocol/tot/Network/#method-getCookies
}
);
//不指定回调函数则阻塞等待返回结果
//var cookies = wb.cdp("Network.getCookies",{urls={"https://httpbin.org"}})
//这个函数直接调用上面的 cdp 命令。
//var cookies = wb.getCookies()
//同步 Cookies
/*
import web.rest.jsonLiteClient;
var http = web.rest.jsonLiteClient();
// http.setCookie 等价于调用 inet.setCookie(wb)
// inet.setCookie(wb) 等价于调用 inet.setCookie(wb.getCookies())
http.setCookie(wb);
*/
//请参考 inet.setCookie: https://www.aardio.com/zh-cn/doc/example/Network/inet/http/cookies.http.html
/*
inet.setCookie 对 web.form, web.rest 客户端等与 inet.http 共享会话的对象都有效。
这些对象在同一进程中总是共享同一会话(即使创建不同的对象)。
inet.whttp 不与 inet.http 共享会话。
*/
winform.show();
win.loopMessage();
Markdown 格式