Windows phone 7 在webRequest回调中了解发件人

Windows phone 7 在webRequest回调中了解发件人,windows-phone-7,Windows Phone 7,大家好, 我有许多使用相同导航事件处理程序的Web视图,我将它们导航到的uri插入,执行httpwebrequest(添加cookie),然后在Web视图中设置内容,并使用javascript添加css 但在某种程度上,我失去了对发送者的引用,我不太明白如何解决这个问题,我不想在事件处理程序中导航 private void MainPage_Loaded(object sender, RoutedEventArgs e) { wb1.Navigate(n

大家好,

我有许多使用相同导航事件处理程序的Web视图,我将它们导航到的uri插入,执行httpwebrequest(添加cookie),然后在Web视图中设置内容,并使用javascript添加css

但在某种程度上,我失去了对发送者的引用,我不太明白如何解决这个问题,我不想在事件处理程序中导航

private void MainPage_Loaded(object sender, RoutedEventArgs e)
        {

            wb1.Navigate(new Uri(site + notif, UriKind.Absolute));
            wb2.Navigate(new Uri(site + comptes, UriKind.Absolute));
            wb3.Navigate(new Uri(site + virements, UriKind.Absolute));
            wb4.Navigate(new Uri(site + autres, UriKind.Absolute));

            wb1.Navigating += new EventHandler<NavigatingEventArgs>(wb_Navigating);
            wb2.Navigating += new EventHandler<NavigatingEventArgs>(wb_Navigating);
            wb3.Navigating += new EventHandler<NavigatingEventArgs>(wb_Navigating);
            wb4.Navigating += new EventHandler<NavigatingEventArgs>(wb_Navigating);
        }

        void wb_Navigating(object sender, NavigatingEventArgs e)
        {
            Uri uri = e.Uri;
            e.Cancel = true;

            cookieContainer = new CookieContainer();
            //Add cookies here


            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri);
            req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;)";
            req.Method = "POST";
            req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            req.CookieContainer = cookieContainer;
            req.BeginGetResponse(new AsyncCallback(ReadWebRequestCallback), req);
        }

        private void ReadWebRequestCallback(IAsyncResult callbackResult)
        {
            HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.EndGetResponse(callbackResult);

                using (StreamReader httpwebStreamReader = new StreamReader(myResponse.GetResponseStream()))
                {
                    string results = httpwebStreamReader.ReadToEnd();

                    Deployment.Current.Dispatcher.BeginInvoke(() => OnUiThreadResponse(results));

                }
                myResponse.Close();
        }

        private void OnUiThreadResponse(string results)
        {
            //HERE i need to know which WebBrowser fired the navigating event
            wbi.NavigateToString(results);
            //Add css with JS
            wbi.InvokeScript("");

        }
private void主页\u已加载(对象发送方、路由目标方)
{
导航(新Uri(site+notif,UriKind.Absolute));
导航(新Uri(site+comptes,UriKind.Absolute));
导航(新Uri(site+virements,UriKind.Absolute));
导航(新Uri(site+autres,UriKind.Absolute));
wb1.Navigating+=新事件处理程序(wb_Navigating);
wb2.Navigating+=新事件处理程序(wb_Navigating);
wb3.Navigating+=新事件处理程序(wb_Navigating);
wb4.Navigating+=新事件处理程序(wb_Navigating);
}
无效wb_导航(对象发送方,导航事件参数e)
{
Uri=e.Uri;
e、 取消=真;
cookieContainer=新cookieContainer();
//在这里添加饼干
HttpWebRequest req=(HttpWebRequest)HttpWebRequest.Create(uri);
req.UserAgent=“Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.1;.NET CLR 1.0.3705;”);
请求方法=“POST”;
req.Accept=“text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8”;
req.CookieContainer=CookieContainer;
req.BeginGetResponse(新的异步回调(ReadWebRequestCallback),req);
}
私有void ReadWebRequestCallback(IAsyncResult callbackResult)
{
HttpWebRequest myRequest=(HttpWebRequest)callbackResult.AsyncState;
HttpWebResponse myResponse=(HttpWebResponse)myRequest.EndGetResponse(callbackResult);
使用(StreamReader httpwebStreamReader=newstreamreader(myResponse.GetResponseStream())
{
字符串结果=httpwebStreamReader.ReadToEnd();
Deployment.Current.Dispatcher.BeginInvoke(()=>OnUiThreadResponse(结果));
}
myResponse.Close();
}
私有void OnUiThreadResponse(字符串结果)
{
//在这里,我需要知道是哪个WebBrowser触发了导航事件
wbi.NavigateToString(结果);
//用JS添加css
wbi.InvokeScript(“”);
}

发出请求时,您可以将
发送方
传递给回调,或者您可以直接内联回调并通过闭包访问发送方。

还有,如果有人可以告诉我如何在导航事件中发布数据以将其添加到我的httpwebrequest中?我如何将发送方添加到回调中,我不明白如何向我的“ReadWebRequestCallback”添加参数