gpt4 book ai didi

c# - 更改 WebView UWP 中的默认用户代理

转载 作者:太空狗 更新时间:2023-10-29 21:16:34 27 4
gpt4 key购买 nike

我需要设置自定义 UA 并且我使用

httpRequestMessage.Headers.Add("User-Agent", "blahblah");
theWebView.NavigateWithHttpRequestMessage(httpRequestMessage);

但是如果我点击页面上的任何链接,该 UA 将被删除并设置为默认 UA。

我发现了同样的问题 WebView - Define User-Agent on every request但也许它在 1607 年修复了?

最佳答案

WebView 不是通用浏览器,它确实有一些目前不支持的“限制”。没有可以设置每个请求中使用的默认用户代理的 API。作为解决方法,我们可以使用 WebView.NavigationStarting event连同 WebView.NavigateWithHttpRequestMessage method在每个请求中设置 User-Agent。

有关如何执行此操作的更多信息,请参阅 this answer .这里的关键点是删除 NavigationStarting 事件的处理程序并取消原始请求中的导航,然后在 NavigateWithHttpRequestMessage 之后添加处理程序以确保 NavigationStarting 事件可以捕获下一个请求,如下所示:

WebView wb = new WebView();
wb.NavigationStarting += Wb_NavigationStarting;
...
private void NavigateWithHeader(Uri uri)
{
var requestMsg = new Windows.Web.Http.HttpRequestMessage(HttpMethod.Get, uri);
requestMsg.Headers.Add("User-Agent", "blahblah");
wb.NavigateWithHttpRequestMessage(requestMsg);

wb.NavigationStarting += Wb_NavigationStarting;
}

private void Wb_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
{
wb.NavigationStarting -= Wb_NavigationStarting;
args.Cancel = true;
NavigateWithHeader(args.Uri);
}

关于c# - 更改 WebView UWP 中的默认用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39490430/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com