| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 738 人关注过本帖
标题:webview2使用的问题真多,需求也很旺盛,吹版建个群有偿咨询吧。。。哈哈哈 ...
只看楼主 加入收藏
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:201
专家分:69
注 册:2005-9-29
收藏
得分:0 
📌 获取请求头的主要步骤
获取Authorization请求头,主要通过处理WebResourceRequested事件实现。以下是基本步骤:

订阅事件:在初始化WebView2之后,订阅CoreWebView2.WebResourceRequested事件。

检查请求:在事件处理程序中,检查每个通过的请求。

获取Authorization头:从请求对象中读取头部信息。

这里有一个C#的代码示例:

csharp
private void InitializeWebView2()
{
    await webView.EnsureCoreWebView2Async(null); // 初始化CoreWebView2

    webView.CoreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested;
}

private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
{
    // 获取所有的请求头
    var headers = e.Request.Headers;

    // 尝试获取Authorization头
    if (headers.Contains("Authorization"))
    {
        string authHeader = headers.GetHeader("Authorization");
        System.Diagnostics.Debug.WriteLine($"Authorization header found: {authHeader}");
        // 接下来你可以对authHeader进行处理,例如解析、验证或存储
    }
}
⚠️ 重要注意事项
事件过滤:WebResourceRequested事件会拦截所有网络请求(主文档、iframe、脚本、图片、AJAX等)。如果你只关心特定请求(例如某些API接口),最好根据请求的URL进行过滤,以避免不必要的处理和提高性能。

csharp
private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
{
    if (e.Request.Uri.StartsWith("https://api.))
    {
        // 只处理特定域名下的请求
        string authHeader = e.Request.Headers.GetHeader("Authorization");
        // ... 你的处理逻辑
    }
}
修改请求头:虽然你最初问的是获取,但顺带一提:在这个事件中,你可以修改请求头(例如添加或更新Authorization头)。但如果你只是想获取,只需读取即可,不要进行修改。

响应头获取:WebResourceRequested事件主要用于处理请求(Request)。如果你需要获取服务器返回的响应头(Response Headers),则需要订阅WebResourceResponseReceived事件。

csharp
webView.CoreWebView2.WebResourceResponseReceived += CoreWebView2_WebResourceResponseReceived;

private void CoreWebView2_WebResourceResponseReceived(object sender, CoreWebView2WebResourceResponseReceivedEventArgs e)
{
    // 可以在这里通过e.Response获取响应头信息
}
导航请求的特殊性:需要注意的是,对于导航(主页面)请求,其请求头在NavigationStarting事件中无法被修改,但WebResourceRequested事件仍然可以拦截并获取到它们。

🔧 其他相关考虑
调试:在处理授权信息时,调试至关重要。你可以使用类似Fiddler或Charles这样的抓包工具来独立验证WebView2发送和接收的网络流量,这有助于判断是代码问题还是服务器问题。

安全警告:Authorization头通常包含敏感的认证信息(如Bearer Token)。你的代码在处理这些信息时,务必注意安全,避免将其记录到明文日志或泄露给第三方。

API更新:WebView2控件仍在积极开发中。微软可能会在未来 release 的版本中添加新的API或改变现有行为,因此最好查阅官方文档以获取最新和最准确的信息。

希望这些信息能帮助你在WebView2中成功获取Authorization请求头。
这个是dp的代码 我不会,希望有会的人可以帮助转一下VFP的,谢谢
昨天 08:14
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10718
专家分:43295
注 册:2014-5-20
收藏
得分:0 
回复 11楼 ls_y041
我给的示例代码就有WebResourceRequested事件的创建、移除和使用方法,也有简单说到修改请求头的东西。
如果不会用C就无计,我也没实际开发应用过,随便试试玩还可以抽点时间,来真的就没空且花不来,我年薪百万起计,点算?(讲笑哈)。
说实际宁愿花钱花时间去等待,等不等得到?等不等得好?。还不如自己动脑动手,那才是一劳永逸。


昨天 15:04
快速回复:webview2使用的问题真多,需求也很旺盛,吹版建个群有偿咨询吧。。。哈 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.107316 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved