UWP перехватывает запрос Webview и добавляет заголовок - PullRequest
1 голос
/ 11 марта 2020

Я перехожу на URL в веб-просмотре UWP, страница внутренне совершает множество http-вызовов. Я перехватываю эти вызовы через событие WebResourceRequested . Я добавляю токен авторизации в заголовок, при этом я получаю « приложение, называемое интерфейсом, который был назначен для другого потока », пыталось запустить его в диспетчере текущего пользовательского интерфейса, но все же я сталкиваюсь с этим вопрос. Пожалуйста, помогите мне в этом.

 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)
            {
            }
        //});

    }

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Согласно тестам, вы не можете находиться в асинхронной среде при установке args.Response.

, пожалуйста, измените

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

на:

var response = client.SendRequestAsync(reqMsg).AsTask().Result;
0 голосов
/ 12 марта 2020

Предлагаемое решение может заморозить пользовательский интерфейс, если у вас есть больше исходящих звонков из веб-просмотра

...