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 格式