2016-12-29 6 views
0

webviewからのすべてのリクエストにカスタムユーザーエージェントと認証トークンを挿入する必要があります。 Webviewから作られたHttpRequestsを傍受することは可能ですか?Webviewリクエストを傍受するXaml

答えて

0

UWPでは、WebView.NavigateWithHttpRequestMessageメソッドを使用して、WebViewをPOSTリクエストとHTTPヘッダーを持つURIにナビゲートできます。

WebViewにはNavigationStartingイベントがあり、WebViewが新しいコンテンツにナビゲートする前に発生します。したがって、WebViewNavigationStartingEventArgs.Cancelプロパティをtrueに設定してナビゲーションをキャンセルする必要があります。例えば

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    NavigateWithHeader(new Uri("http://www.whoishostingthis.com/tools/user-agent/")); 
} 

private void NavigateWithHeader(Uri uri) 
{ 
    var requestMsg = new Windows.Web.Http.HttpRequestMessage(HttpMethod.Get, uri); 
    string ua = "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"; 
    requestMsg.Headers.Add("User-Agent", ua); 
    MyWebView.NavigateWithHttpRequestMessage(requestMsg); 
    MyWebView.NavigationStarting += Wb_NavigationStarting; 
} 

private void Wb_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args) 
{ 
    MyWebView.NavigationStarting -= Wb_NavigationStarting; 
    args.Cancel = true; 
    NavigateWithHeader(args.Uri); 
} 
+0

もJavaScriptから作られた要求をインターセプトすることが可能です。私は以下の内容をwebviewにロードしたい。 javascriptは詳細ページを生成しますが、生成されたHTMLコンテンツの問題です。画像とjsファイルのsrcにプロトコルが指定されていません(httpまたはhttps)。私は「= – Prince

+0

"

<スクリプトタイプ=『テキスト/ javascriptの』SRC =『http://media.flixfacts.com/js/loader.js』データ・FLIX-販売代理店を動作するようにページのこれを手動で追加します12612 'data-flix-language =' id 'data-flix-brand ='サムスン 'data-flix-mpn =' UA55JU6600KPXD 'data-flix-ean =' 'data-flix-sku =' 'data-flix-button > "= 'FLIX-ミニサイトのデータ・FLIX-ページはめ込み= 'FLIX-ページはめ込み' データ・FLIXボタン-画像= '' データ・FLIX-フォールバック言語= 'E2' は、データ・FLIX-価格= '' 非同期 – Prince

関連する問題