Winforms WebBrowser 控件 URL 参数

Posted

技术标签:

【中文标题】Winforms WebBrowser 控件 URL 参数【英文标题】:Winforms WebBrowser Control URL Parameters 【发布时间】:2013-02-15 11:50:45 【问题描述】:

我使用 Visual Studio 2010。我编写 C# windows 应用程序。我不会在这个应用程序中使用 WebBrowser 组件。我有一个问题。我在具有名称 URL 的 WebBrowser 参数中写了一些地址。结果 WebBrowser 重定向到另一个 http 地址。这个新地址包含带有一些参数的 http 字符串。像这样:

http://oauth.vk.com/blank.html#access_token=9e4b021cb7dd54c795ef1c106f6c0063ef5bc4491f3e6c9e518728b969df58576ebd80dc283e1c7068ac5&expires_in=0&user_id=66476428

我想从这个名为 access_token 的新地址读取参数。但是当我试图获取 WebBrowser 组件的参数 URL 时(像这样

MessageBox.Show(webBrowser1.Url.ToString()); 

) 然后我只读取这个字符串:

http://oauth.vk.com/blank.html

如何读取 access_token 参数?

【问题讨论】:

您确定已将完整的 url 添加到 webbrowser1 控件的 URL 属性中吗?因为如果你这样做了 .ToString() 应该给你完整的 URL。你能把你在 webBrowser1.Url = ??? 中输入的屏幕截图或代码放上去吗? 是的,当然。但它是不变的网址。我在属性面板中写了这个。请参阅此打印屏幕:cs308917.userapi.com/v308917428/4d1b/QEYpR7KSkjw.jpg 【参考方案1】:

尝试使用webBrowser1.Url.Query获取uri的查询字符串部分,然后解析字符串得到access_token部分。

您可以通过像这样向 System.Web 添加引用来使用HttpUtility

var q = HttpUtility.ParseQueryString(webBrowser1.Url.Query);
var access_token = q["access_token"];

【讨论】:

以上是关于Winforms WebBrowser 控件 URL 参数的主要内容,如果未能解决你的问题,请参考以下文章

在 WinForms WebBrowser 控件中设置常规文本大小选项

如何在winforms的WebBrowser控件中调用javascript?

WPF 和 WinForms WebBrowser 控件之间存在哪些功能差异?

Flash 视频在 WinForms WebBrowser 控件中显示不稳定

如何截获WebBrowser控件onbeforeunload事件

Mono Winforms WebBrowser 错误 - 未找到 libgluezilla