2017-02-23 2 views
1

Ich versuche, eine C# UWP-Anwendung zu entwickeln. Seine Ansicht enthält Webview-Steuerelement und HTML-Inhalte sind alle in dieser Lösung enthalten. Ich möchte HTTP-Anfrage abfangen und wenn es GET-Anfrage ist, etwas wie JSON, Text oder andere zurückgeben. Ich könnte dies tun, wenn ich eine Android-Anwendung entwickelt. Android liefert einige Methoden "shouldInterceptRequest" und Typen wie "WebRequestResponse". Kann ich das in C# (nicht Xamarin) tun? Und wenn es ja ist, bitte sag mir wie es geht. Sorry für mein schlechtes Englisch. Vielen Dank.Wie abfangen HTTP-Anfrage in C#?

nicht über WebBrowser, sondern über WebView.

+1

Sie möchten als Webserver agieren? – DavidG

+1

Mögliches Duplikat von [Abfangen von Anfragen von WebBrowser in C#] (http://stackoverflow.com/questions/811587/intercepting-requests-made-by-webbrowser-in-c-sharp) – Gusman

+0

Nein. Ich möchte Anfrage zu fangen und Antwort ohne Webserver zurückgeben. – pipikapu

Antwort

0

bearbeiten

Sie zu NavigationStarting Ereignis

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

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

} 

Hinweis, dass dies nur Capture-Navigationsereignis in der Webansicht hören können.

Original "falsche" Antwort

  1. Platzieren Sie Ihre HTML-Datei in Asset Ordner
  2. In Ihrem Web-Ansicht, legen Sie die Source mit ms-appx-web:///Assets/{htmlFileName}
<WebView x:Name="MyWebView" Source="ms-appx-web:///Assets/Foo.html"></WebView>

Oder über Code

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

Ich kann bereits meine htmls mit WebView.Navigate() anzeigen. Ich möchte die HTTP-Anfrage abfangen (wenn ein Tag angeklickt wurde, die Schaltfläche angeklickt wurde und die anderen) – pipikapu

+0

Siehe die aktualisierte Antwort – Bob