用8.1的webview怎么获取页面cookie?

wl****zf UID.685940
2015-04-03 发表

用8.1的webview怎么获取页面cookie?

标签: cookie

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
暗****手 UID.379158
2015-04-03 回复

插入一段JavaScript code来获取document.cookie

wl****zf UID.685940
2015-04-03 回复

Quote***链接停止解析***
插入一段JavaScript code来获取document.cookie


能再问一下,在浏览别人的网页比如百度,我要怎么在他们的网页里插入js代码?

qiqiminmin UID.638527
2015-04-03 回复

本帖最后由 qiqiminmin 于 2015-4-3 22:19 编辑

我是土人,一直用土方法。。。。。。。{:6_218:}

// 主要是使用 Webrequest, 最后把读到的东西方到webview里面,我一般都是针对一个网站用 webrequest, 或者 httpclient写一个api,最外面再包一个 webview,webview只是一个假想。 login, logout, 或者其他功能实现是用 chrome弄清楚 json数据结构弄好的。
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.163.com");

// CookieContainer, 你可以添加 或者 获取 Cookie
myHttpWebRequest.CookieContainer = new CookieContainer();

// 这就属于作假了,我事先用chrome 弄清楚都有什么 cookie,自己可以随意添加,即使没有login,也可以达到login的效果,( ̄▽ ̄)",好像很坏啊。 如果搞清楚结构,在head里面把 token都加入,其实是很无敌的。
Cookie myCookie = new Cookie ("Name","Value");

myHttpWebRequest.CookieContainer.Add(myCookie);

// 发送request,等待response,在wp和 win8.1中,是 async的,前面加个 await就行
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

Stream receiveStream = myHttpWebResponse.GetResponseStream();

Encoding encode = System.Text.Encoding.GetEncoding("utf-8");

// 读取数据
StreamReader readStream = new StreamReader( receiveStream, encode );

Char[] read = new Char[1024];

// 这是自己从 linux就保持的习惯,你可以一次性读完, 在httpclient 都可以直接读 text的
int count = readStream.Read( read, 0, 1024);

while (count > 0)
{
String str = new String(read, 0, count);
count = readStream.Read(read, 0, 1024);
}

// 释放,
myHttpWebResponse.Close();


readStream.Close();

myWebView.NavigateToString(str);

因为整个页面都是由你掌控,每次navigate的时候,你应该如法炮制,通过webrequest获取text,然后放到自己的 webview里面。如果是app, 那就干脆不要webview,反正想展示什么都由你决定。

暗****手 UID.379158
2015-04-09 回复

Quote***链接停止解析***
能再问一下,在浏览别人的网页比如百度,我要怎么在他们的网页里插入js代码? ...


先获取HTML,插入js后直接显示修改后的HTML,不过这样会导致css失效。

wl****zf UID.685940
2015-04-09 回复

Quote***链接停止解析***
先获取HTML,插入js后直接显示修改后的HTML,不过这样会导致css失效。


css倒是没关系,不过你确定这样子干不会出现跨域问题?我先去试试吧

qiqiminmin UID.638527
2015-04-10 回复

本帖最后由 qiqiminmin 于 2015-4-10 11:45 编辑

Quote***链接停止解析***
css倒是没关系,不过你确定这样子干不会出现跨域问题?我先去试试吧



我发错了。。。。。。。。。

不过我经常用一种方法获取 html text,你是不是后面改改用来获取cookie

string text = await webview.InvokeScriptAsync("eval", new string[] {"document.documentElement.outerHTML;"});


实在不好意思,现在才让你得到答案,之前我一直想应该有,没想到这么简单

string cookie = await webview.InvokeScriptAsync("eval", new string[] { "document.cookie;" });

wl****zf UID.685940
2015-05-01 回复

Quote***链接停止解析***
我发错了。。。。。。。。。

不过我经常用一种方法获取 html text,你是不是后面改改用来获取cookie


document.cookie的值无法获取,而document.title可以很正常的获取到,请问可能是我忽略了什么吗?***链接停止解析***

qiqiminmin UID.638527
2015-05-01 回复

Quote***链接停止解析***
document.cookie的值无法获取,而document.title可以很正常的获取到,请问可能是我忽略了什么吗?http:// ...


可能是你的浏览器设置了不保存cookie,或者其他,这里说明你可以通过你的工程与webview通信

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报