如何在C#中拦截http请求?

时间:2017-02-23 00:31:19

标签: c# http webview uwp

我正在尝试开发一个C#UWP应用程序。它的视图包含webview控件和html内容都包含在此解决方案中。 我想拦截http请求,如果是GET请求,则返回json,text或其他内容。 当我开发一个Android应用程序时,我可以这样做。 Android提供了一些方法“shouldInterceptRequest”和类似“WebRequestResponse”的类型。 我可以用C#(不是Xamarin)做到这一点吗?如果是,请告诉我该怎么做。 对不起,我的英语不好。感谢。

不是关于WebBrowser,而是关于WebView。

1 个答案:

答案 0 :(得分:0)

修改

您可以收听NavigationStarting事件

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

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

}

注意,这只会捕获网页视图中的导航事件。

原创"错误"答案

  1. 将您的HTML文件放在Asset文件夹
  2. 在您的网络视图中,将Sourcems-appx-web:///Assets/{htmlFileName}
  3. 放在一起
    <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"));
    }