2017-02-23 433 views
1

我正在嘗試開發一個C#UWP應用程序。它的視圖包含webview控件和html內容都包含在這個解決方案中。 我想攔截http請求,如果它是GET請求,返回像json,文本或其他東西。 當我開發一個android應用程序時,我可以做到這一點。 Android提供了一些方法「shouldInterceptRequest」和類型如「WebRequestResponse」。我可以在C#(而不是Xamarin)中做到這一點嗎?如果是,請告訴我該怎麼做。 對不起,我的英語不好。謝謝。如何攔截C#中的http請求?

不是關於WebBrowser,而是關於WebView。

+1

你想充當一個網絡服務器? – DavidG

+1

[在C#中攔截由WebBrowser發出的請求]的可能重複(http://stackoverflow.com/questions/811587/intercepting-requests-made-by-webbrowser-in-c-sharp) – Gusman

+0

不,我想要捕捉請求並返回沒有Web服務器的響應。 – pipikapu

回答

0

編輯

你可以聽NavigationStarting事件

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

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

} 

注意,這只是web視圖內捕獲導航事件。

原始 「錯誤」 的答案

  1. 將在Asset文件夾中的HTML文件
  2. 在Web視圖,把Sourcems-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

我已經可以使用WebView.Navigate()顯示我的htmls。我想攔截http請求(當點擊標籤,點擊按鈕和其他人時) – pipikapu

+0

查看已更新的答案 – Bob