前言:
现时咱们对“webview 获取cookie”可能比较讲究,兄弟们都想要分析一些“webview 获取cookie”的相关资讯。那么小编在网上网罗了一些对于“webview 获取cookie””的相关内容,希望小伙伴们能喜欢,看官们快快来学习一下吧!前几天有人问通过 WebSocket 调用语音遇到的问题。我就稍微封装了一下。
几个要点注意一下:
1、这个接口在连接 WebSocket 以后,来回每个消息前面有类 HTTP 格式头。而 HTTP 头的拼接要很小心,少了一个回车符、换行符都会出错。
其实 aardio 里有个 web.joinHeaders() 做这事很方便,这个函数的参数可以传很多不同奇奇怪怪的格式进去,然后自动修正错误,规一化为正确的格式。
而我今天基于这个函数又为 aardio 新增了一个 string.http 库,专门用来生成与解析 Edge 接口的这种消息格式(其实挺好用)。
2、每次语音转文本要重新连接 WebSocket ,这是容易误解和出错的地方。套接字断开了就不要用了,重新创建一个 WebSocket 再连上去就可以了。
首先在 aardio 里画一个界面,aardio 做这些事很简单:
然后切换到代码视图,输入代码如下:
import bass.channel; import web.edgeTextToSpeech;import win.ui;/*DSG{{*/var winform = win.form(text="Edge 大声朗读")winform.add(button={cls="button";text="文本转语音";left=472;top=384;right=705;bottom=445;color=14120960;db=1;dr=1;font=LOGFONT(h=-14);note="调用 Edge WebSocket 大声朗读接口";z=2};cmbVoice={cls="combobox";left=67;top=390;right=297;bottom=416;db=1;dl=1;edge=1;items={};mode="dropdownlist";z=3};edit={cls="edit";left=8;top=10;right=741;bottom=370;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=1};static={cls="static";text="速度:";left=0;top=432;right=56;bottom=456;align="right";center=1;transparent=1;z=5};static2={cls="static";text="语音:";left=0;top=392;right=56;bottom=416;align="right";center=1;transparent=1;z=6};tbRate={cls="trackbar";left=56;top=424;right=344;bottom=454;max=100;min=0;z=4})/*}}*///响应按钮点击事件winform.button.oncommand = function(id, event) { //禁用按钮,显示加载动画 winform.button.disabledText = {"✶";"✸";"✹";"✺";"✹";"✷"} //创建文本转语音服务 var tts = web.edgeTextToSpeech(winform.edit.text,"\tts.mp3") //设置语音 tts.voiceOptions.name = winform.cmbVoice.selText //设置速度 tts.voiceOptions.rate = (winform.tbRate.pos - 100) + "%" //识别完成 tts.OnResponseEnd = function(path){ //启用按钮,停止动画 winform.button.disabledText = null; //播放声音 bass.channel.open(string.load(path)).play() } //连接服务器,合成语音 tts.ConnectAsync();}//设置滑块范围(语音速度)winform.tbRate.setRange(0,200);winform.tbRate.pos = 100;//可选语音列表winform.cmbVoice.items = { "zh-CN-XiaoxiaoNeural"; "zh-CN-XiaoyiNeural"; "zh-CN-YunjianNeural"; "zh-CN-YunxiNeural"; "zh-CN-YunxiaNeural"; "zh-CN-YunyangNeural"; "zh-CN-shaanxi-XiaoniNeural"; "zh-CN-liaoning-XiaobeiNeural"; "zh-TW-HsiaoChenNeural"; "zh-TW-YunJheNeural"; "zh-TW-HsiaoYuNeural"; "zh-HK-HiuGaaiNeural"; "zh-HK-HiuMaanNeural"; "zh-HK-WanLungNeural";}winform.cmbVoice.selIndex = 1;winform.show();win.loopMessage();
按 F5 运行就可以了。有兴趣可以阅读一下扩展库的源代码,也没几句代码。
再说一个最近跟浏览器有关的的更新。
kanadeblisst 写了一篇很棒的文章:
aardio爬虫实战篇:采集自己的公众号粉丝列表。开源地址:
我最近改进了一下文中提到的 Cookie 有关的功能。经过改进以后,现在只要一句代码就能自动把 WebView2 浏览器控件的 Cookie 提取出来用于自己创建的 HTTP 客户端。
就用 kanadeblisst 这个很棒的案例我们做一下演示:
import win.ui;/*DSG{{*/var winform = win.form(text="取粉丝列表") /*}}*/import web.view;var wb = web.view(winform); wb.go(";);winform.show();//等待网址,获取网址内 token 参数var token = wb.waitUrlParam("cgi-bin/home","token");//创建 HTTP 客户端import web.rest.jsonLiteClient;var http = web.rest.jsonLiteClient();//获取 web.view 的 Cookiehttp.setCookie(wb);//声明 API var mp = http.api(";);//调用 API var result = mp.get({ "token": token, "action": "get_user_list", "groupid": -2, "limit": 20, "offset": 0, "lang": "zh_CN", "f": "json", "backfoward": 1, "ajax": 1, "random": "0." + string.random(16, "0123456789"), "begin_create_time": 11111}) //查看返回数据import console;console.dumpJson(result);win.loopMessage();
按 F5 运行看效果,是不是方便多了?
标签: #webview 获取cookie