WP7浏览器控件标头

3

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

3个回答

0

抱歉打扰了,但这里的答案是错误的。可以通过Navigate方法向WebBrowser添加标头。

WebBrowser.Navigate(YourURI, null, YourCustomHeaderString)

请参阅此页面:http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff626636(v=vs.105).aspx

.

这些标头仅适用于通过您的代码导航到的第一页。如果您希望标头保持不变,即使用户在 Web 浏览器控件内单击链接,可以在 WebBrowser 的 navigating 事件中添加此内容:

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,即e.Uri,是否包含YESHEADERS

如果包含,则我们已经添加了我们的标头。不采取任何行动。

如果不包含,则取消当前导航。创建一个新的URL,等于旧的URL加上我们的指示器。我们将YESHEADERS添加到新URL的查询字符串中。如果您不熟悉查询字符串,那没关系,只要知道它们是URL上的额外字符串,在我们的情况下没有任何效果。 关于查询字符串的信息

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

简而言之,如果我们有指示器YESHEADERS,则Web浏览器知道我们已添加了自定义标头,如果没有YESHEADERS,则Web浏览器需要添加标头。


0

0

这是无法实现的。如果您需要更改标头,则需要使用 HttpWebRequest

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接