2017-02-23 101 views
1

Я пытаюсь разработать приложение C# UWP. Его представление содержит элемент управления webview и содержимое html, содержащиеся в этом решении. Я хочу перехватить HTTP-запрос, и если это запрос GET, верните что-то вроде json, text или других. Я мог бы это сделать, когда разработал приложение для Android. Android предлагает некоторые методы «shouldInterceptRequest» и типы, подобные «WebRequestResponse». Могу ли я сделать это на C# (а не Xamarin)? И если да, пожалуйста, скажите мне, как это сделать. Извините за мой плохой английский. Благодарю.Как перехватить HTTP-запрос в C#?

не о WebBrowser, а о WebView.

+1

Вы хотите действовать как веб-сервер? – DavidG

+1

Возможный дубликат [Перехват запросов, сделанных WebBrowser в C#] (http://stackoverflow.com/questions/811587/intercepting-requests-made-by-webbrowser-in-c-sharp) – Gusman

+0

Нет. Я хочу получить запрос и возвращать ответ без веб-сервера. – pipikapu

ответ

0

Редактировать

Вы можете слушать NavigationStarting события

public MainPage() 
{ 
    this.InitializeComponent(); 
    MyWebView.NavigationStarting += MyWebViewOnNavigationStarting; 
} 

private void MyWebViewOnNavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args) 
{ 
    string navigatingUri = args.Uri.ToString(); 

} 

Примечание, что это только захват навигации событие внутри WebView.

Оригинал "неправильный" ответ

  1. Поместите HTML-файл в Asset папке
  2. В вашем веб-просмотра, поставить Source с ms-appx-web:///Assets/{htmlFileName}
<WebView x:Name="MyWebView" Source="ms-appx-web:///Assets/Foo.html"></WebView>

Или через код

public MainPage() 
{ 
    this.InitializeComponent(); 
    MyWebView.Navigate(new Uri("ms-appx-web:///Assets/Foo.html")); 
} 
+0

Я уже могу отображать свои htmls с помощью WebView.Navigate(). Я хочу перехватить HTTP-запрос (когда тег щелкнул, нажал кнопку и другие) – pipikapu

+0

См. Обновленный ответ – Bob