Windows phone 7 WP7网络浏览器控制头

Windows phone 7 WP7网络浏览器控制头,windows-phone-7,http-headers,webbrowser-control,Windows Phone 7,Http Headers,Webbrowser Control,您好,是否可以在WP7 WebBrowser控件中添加请求头?否-我认为没有任何API挂钩可用于此 这是一个类似于中讨论的“更改用户代理”请求的问题,无法做到这一点。如果需要更改标题,则需要使用HttpWebRequest 您可以拦截来自WebBrowser控件的请求,并通过HWR自己进行处理,但这可能会很快变得复杂。对不起necro,这里的答案是错误的。可以通过Navigate方法将标题添加到WebBrowser WebBrowser.Navigate(YourURI,null,YourCus

您好,是否可以在WP7 WebBrowser控件中添加请求头?

否-我认为没有任何API挂钩可用于此


这是一个类似于

中讨论的“更改用户代理”请求的问题,无法做到这一点。如果需要更改标题,则需要使用
HttpWebRequest


您可以拦截来自WebBrowser控件的请求,并通过HWR自己进行处理,但这可能会很快变得复杂。

对不起necro,这里的答案是错误的。可以通过Navigate方法将标题添加到WebBrowser

WebBrowser.Navigate(YourURI,null,YourCustomHeaderString)

见本页:

这些标题仅适用于通过代码导航到的第一个页面。如果希望即使用户单击web浏览器控件内的链接,标题也保持不变,请为WebBrowser的导航事件添加以下内容:

private void browser_Navigating(object sender, NavigatingEventArgs e)
{
   string url = e.Uri.ToString();

   if(!url.Contains("YESHEADERS"))
   {
       e.Cancel = true;

       string newUrl;
       if(url.Contains("?"))
       {
           newUrl = url + "&YESHEADERS";
       }
       else
       {
           newUrl = url + "?YESHEADERS";
       }

       browser.Navigate(newUrl, null, "fore:" + Variables.GetForeground() + "")
   }
}
这就是它的作用:

我们创建一个指示器,
YESHEADERS
,它告诉我们是否添加了自定义标题

当WebBrowser尝试导航时,我们检查它导航到的URL(例如Uri)是否包含
YESHEADERS

如果有,我们已经添加了标题。不采取行动

如果没有,请取消当前导航。创建一个新URL,该URL等于旧URL加上我们的指示符。我们将
YESHEADERS
添加到新URL的查询字符串中。如果您不熟悉查询字符串,只需知道它们是URL上的额外字符串,在我们的例子中没有任何影响

然后,我们导航到新的URL,并添加自定义标题

简言之,如果我们有指标
YESHEADERS
,web浏览器知道我们已经添加了自定义标题,如果我们没有
YESHEADERS
,web浏览器就需要添加标题