gpt4 book ai didi

UWP拦截Webview请求并添加header

转载 作者:行者123 更新时间:2023-12-04 10:26:05 31 4
gpt4 key购买 nike

我在 UWP webview 中导航到一个 url,该页面在内部进行了许多 http 调用。我正在通过 WebResourceRequested 事件拦截这些调用。我在 header 中添加了身份验证 token ,这样做时我得到“应用程序调用了一个为不同线程编码的接口(interface)”,试图在当前 UI 的调度程序中运行,但我仍然面临这个问题。请帮我解决这个问题。

 private async void Wb_WebResourceRequested(WebView sender, WebViewWebResourceRequestedEventArgs args)
{
//_ = this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
//{

try
{
string host = args.Request.RequestUri.Host;
string uri = args.Request.RequestUri.AbsoluteUri;

try
{
var reqMsg = args.Request;
reqMsg.Headers.Authorization = new Windows.Web.Http.Headers.HttpCredentialsHeaderValue("Bearer", _AuthToken);
var response = await client.SendRequestAsync(reqMsg).AsTask();
args.Response = response;

Debug.WriteLine(uri + " res code : " + response.StatusCode);
}
catch (Exception e)
{
Debug.WriteLine(uri + " error msg : " + e.Message);
}

}
catch (Exception e)
{
}
//});

}

最佳答案

根据测试,设置args.Response时不能处于异步环境。

请改变

var response = await client.SendRequestAsync(reqMsg).AsTask();

到:

var response = client.SendRequestAsync(reqMsg).AsTask().Result;

关于UWP拦截Webview请求并添加header,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60632198/

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