Windows phone 7 在WebClient wp7中重定向时获取当前Uri

Windows phone 7 在WebClient wp7中重定向时获取当前Uri,windows-phone-7,uri,webclient,Windows Phone 7,Uri,Webclient,我希望我不会开始一个已经完成的话题,但我在这里没有找到任何正确的答案,也没有找到任何其他答案。 现在我们开始: 我使用WebClient从网页下载HTML代码,然后使用该WebClient发送一个新请求,网页将重定向我。现在我想知道现在网站把我放在哪里了 WebClient类本身没有任何合适的属性,我已经尝试重写该类以便获得响应URI,但不知何故,它对wp7不起作用 那么,你知道如何获取我的网络客户端重定向的URI吗?或者知道我想使用自己的类时应用程序崩溃的原因: public clas

我希望我不会开始一个已经完成的话题,但我在这里没有找到任何正确的答案,也没有找到任何其他答案。 现在我们开始: 我使用WebClient从网页下载HTML代码,然后使用该WebClient发送一个新请求,网页将重定向我。现在我想知道现在网站把我放在哪里了

WebClient类本身没有任何合适的属性,我已经尝试重写该类以便获得响应URI,但不知何故,它对wp7不起作用

那么,你知道如何获取我的网络客户端重定向的URI吗?或者知道我想使用自己的类时应用程序崩溃的原因:

    public class MyWebClient : WebClient
    {
            Uri _responseUri;

            public Uri ResponseUri
            {
                get { return _responseUri; }
            }
            protected override WebResponse GetWebResponse(WebRequest request, IAsyncResult result)
            {
                WebResponse response = base.GetWebResponse(request, result);
                _responseUri = response.ResponseUri;
                return response;
            }
        }
}

提前谢谢

HttpWebRequest
是这里的解决方案,因为
WebClient
无论如何都是它的包装器。类似的方法应该适合您的具体情况:

private HttpWebRequest request;
private bool flagIt = true;

public MainPage()
{
    InitializeComponent();

    request = (HttpWebRequest)WebRequest.Create("http://google.com");
    request.BeginGetResponse(new AsyncCallback(GetData), request);
}

public void GetData(IAsyncResult result)
{
    HttpWebRequest request = (HttpWebRequest)result.AsyncState;
    HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result);

    Debug.WriteLine(response.ResponseUri.ToString());

    if (flagIt)
    {
        request = (HttpWebRequest)WebRequest.Create("http://microsoft.com");
        request.BeginGetResponse(new AsyncCallback(GetData), request);
        flagIt = false;
    }
}
我在主页构造函数中启动请求,然后在回调中处理它。请注意我是如何得到您的最终目的地
响应的


如果你不想阻止重定向并简单地获取URL,你不需要处理
AllowAutoRedirect
,就像我在上面的代码片段中所做的那样。

好吧,因为我的整个程序都使用webclient,所以我试着绕过HttpWebRequest(实际上我以前并不知道)。感谢您提供了有详细记录的答案!:)